Version 1 (modified by ieslick, 7 years ago)

--

Major components: - Btree Library - Slot value storage (on disk hash or just btree?) - Transaction Management - Support for garbage collection?

Design tradeoffs:

Btree library: binary fixed-size page approach vs. using and serializing a lisp Btree node object - Messing with binary pages adds complexity but probably saves effort. - If we use lisp structures for the BTree node (an alist, for example) then we don't know the size of a node until it is serialized at which time we may have to move it or split it up. Maybe this is fine. - If we design the abstraction right, we could start with one and move to the other.

Transaction management: - Fine-grained locking model vs. optimistic concurrency (versioned objects ala Rucksack?) - Does our solution involve deadlocks? How to unwind?

Multi-process support: - Centralized server or replication? - Distributed transactions?