[PATCHES] freelist defragmentation and (dependent) ctdb repacking
Michael Adam
obnox at samba.org
Fri Jun 13 01:30:16 MDT 2014
On 2014-06-13 at 17:10 +1000, Amitay Isaacs wrote:
> >
>
> Hi Michael,
>
> The changes look good, but haven't finished reviewing them yet.
Thanks so far!
> One of the issue is that the ctdb changes are not compatible with older tdb
> version. Are we making a decision to drop the compatibility with older
> versions of tdb?
Well I am not suggesting any such decision here.
Therefore, we can omit the final patch to ctdb
and simply have ctdb call tdb_freelist_size: That is
the first approach, where tdb_freelist_size is
changed to call tdb_freelist_merge_adjacend()
so that the API does not change, but a defragmenting
side-effect is added.
That's why I explicitly put it this way:
> On Thu, Jun 12, 2014 at 1:43 AM, Michael Adam <obnox at samba.org> wrote:
> >
> > - Because we might not want to bump the version to 1.3.1 for
> > this (not sure..), or as a proposal, I have also changed
> > tdb_freelist_size() to call tdb_freelist_merge_adjacent()
> > so that it automatically defragments.
> >
> > - Secondly, there is a place when we traverse the freelist
> > anyways, namely in tdb_allocate_from_freelist(). I have
> > changed our loop there to merge with left freelist records,
> > thereby automatically reducing the freelist fragmentation
> > as the database is used. This will usually not traverse until
> > the end though since the bes fit algorithm works with decreasing
> > accuracy.
> >
> > - I probably owe a test to measure the effect?!
> >
> > The second patchset is for ctdb and builds upon the first one.
> >
> > - It changes the vacuum code to always call tdb_freelist_size()
> > again before checking whether a repack run is needed, so that
> > it automatically defragments the freelist.
> > This might reduce the frequency of (blocking) repacks.
> >
> > - As a variant, on top there is a patch to explicitly call
> > tdb_freelist_merge_adjacent() instead of freelist_size().
> > If we choose to have freelist_size defragment, we don't
> > need this change, and it is also more backward compatible.
Is that the more reasonable approach?
Cheers - Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20140613/4fd31a36/attachment.pgp>
More information about the samba-technical
mailing list