directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel L├ęcharny <>
Subject [Mavibot] Persisted BTree serialization modifications
Date Tue, 11 Feb 2014 16:37:28 GMT
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.

Emmanuel L├ęcharny 

View raw message