Kiran added a checker for Mavibot, which control that the file is in a
decent state. THat will help for at least two purposes :
- to verify that we don't have holes in the file (ie, all the pages are
really in use)
- with some refactoring, this will be the base for a recover of unused
pages after a crash.
All in all, it's not completely implemented, atm we can check the Btree
of Btrees, and the Btree Header of every version of every user's btree.
The CopiedPage B-tree is not yet checked, nor are the b-trees
themselves, but this will be done later today. Last, not least, we also
need to check the sub-btrees.
The idea is to expose the list of unused pages if we have some. This
output shows the used pages as '1' and unused pages as '0' :
 01010011010101010101010101010110 
(keep in mind that we still have to check the b-trees content, thus the 0).
This is also needed for any work done on the free pages collector.
I'd like to have an output that list all the b-trees, with the pages
they are using, a bit like :
 01010001000000000000000000000000 : B-tree of B-trees
 00101100100000000000000000000000 : B-tree 'test' rev 0
 00100010101000000000000000000000: B-tree 'test' rev 1
 11111111111111111111111111111111 : global pages
Thus we can see the shared pages (those which will be set to '1' in more
than one b-tree)
Otherwise, after a bug Kiran fixed, the server can use Mavibot as a
backend (all the tests are passing green).
It's probably time for a release, assuming that the file will grow over
time, as we don't yet reclaim old pages. At least, we should merge back
the branch we are working on into trunk.
More to come later !