You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Emmanuel Lécharny <el...@gmail.com> on 2014/02/11 17:37:28 UTC

[Mavibot] Persisted BTree serialization modifications

Hi guys,

in order to implement the transactions for persisted B-tree, I have to
modify the way we serialize them on disk.

ATM, we use a heavy B-tree header which contains all the B-tree
information. This was ok as soon as we don't support transaction, and
specifically versions. As soon as we want to support more than one
version for a given B-tree, we have to create a new B-tree header for
each single revision. It's now clear that we don't want to duplicate
data like the B-tree name, the serializers, the pageSize and the
duplicate flag, as they will never change. The only values we want to
store in each B-tree header are the revision, the number of elements,
and the rootPage offset.

That will have some impact on the storage. The BtreeOfBtrees will now
contain reference to B-tree headers, and we will store the B-tree static
information into page which will never be updated. Every added element
will create a new B-tree header pointing to the new rootPage.

This is not that a big change, but it's mandatory.

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com 


Re: [Mavibot] Persisted BTree serialization modifications

Posted by Kiran Ayyagari <ka...@apache.org>.
On Tue, Feb 11, 2014 at 10:07 PM, Emmanuel Lécharny <el...@gmail.com>wrote:

> Hi guys,
>
> in order to implement the transactions for persisted B-tree, I have to
> modify the way we serialize them on disk.
>
> ATM, we use a heavy B-tree header which contains all the B-tree
> information. This was ok as soon as we don't support transaction, and
> specifically versions. As soon as we want to support more than one
> version for a given B-tree, we have to create a new B-tree header for
> each single revision. It's now clear that we don't want to duplicate
> data like the B-tree name, the serializers, the pageSize and the
> duplicate flag, as they will never change. The only values we want to
> store in each B-tree header are the revision, the number of elements,
> and the rootPage offset.
>
> That will have some impact on the storage. The BtreeOfBtrees will now
> contain reference to B-tree headers, and we will store the B-tree static
> information into page which will never be updated. Every added element
> will create a new B-tree header pointing to the new rootPage.
>
> This is not that a big change, but it's mandatory.
>
> go for it, probably we both are the only guys who need to delete and
recreate a mavibot partition :)

> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>
>


-- 
Kiran Ayyagari
http://keydap.com