[PATCHES] freelist defragmentation and (dependent) ctdb repacking

Amitay Isaacs amitay at gmail.com
Mon Jun 16 23:46:58 MDT 2014


On Tue, Jun 17, 2014 at 2:09 AM, Michael Adam <obnox at samba.org> wrote:

> after a short discussion with Volker, here are two updated patchsets:
>
> The tdb patchset:
>
> - does not publish the tdb_freelist_merge_adjacend() function
> - tdb_freelist_size() calls tdb_freelist_merge_adjacend() if
>   the db is not read only, otherwise operates as before.
> - Hence no version bump is needed
> - the tdbtool gets a new subcommand "freelist_size" which
>   calls and prints the freelist size, thereby defragmenting
>   the freelist, but there is no subcommand "merge_adjacent" any more.
> - The tdb_allocate_from_freelist() code got an extra twist
>   that can help expansions of the db:
>   When a new candidate was created by a merge but no candidate
>   was found in the first walk, we do a second walk without
>   before expanding.
>
> The ctdb patchset:
>
> - does obviously not call tdb_freelist_merge_adjacent any more
>   and is hence an in principle unrelated cleanup, but it has
>   the side effect of defragmenting the freelist when run with
>   current tdb code, by calling tdb_freelist_size() even when
>   repack_limit is set to 0.
>
> Cheers - Michael
>
>
As discussed, I have reviewed ctdb patchset and pushed since they are now
independent of the tdb changes.

Amitay.


More information about the samba-technical mailing list