wiredtiger/wiredtiger.github.com — Issue #132: Block manager interface
Author: wiredtiger
Created: 2012-01-31 18:52:52+00:00
State: open

Push block allocation, reading and writing behind an interface that applications can implement. Block managers will assign opaque address cookies when blocks are allocated, rather than the addr/size pairs currently assumed by the btree code.

When we switch to arbitrary block allocators, we will move the root block addresses into the schema table (and eventually, the "obsolete" list).

Then the problem becomes finding the root and freelist addresses for the schema table itself. These will be stored in another special file (suggested name "WiredTiger.turtle"), which is written and moved atomically.

Idea: add a flag to the block allocator to say "allocate a root page" -- causes the free list to be written, gives back a potentially bigger cookie used to reopen the file. May need a read-only "block open" for snapshots that ignores the freelist.

Add