2.7 To Be Done
I think most of the items in RJZ’s list have been done.
RJZ Modified 4/8/1993
- B-tree maintenacne
- Implement deferred INDEX updates (in progress).
- Fix bug in PREV re missing down-ptrs.
- Implement fix for insert-screw-case (flag in root or wherever it was).
- Implement and test random page replacement.
- Implement parent/PREV caching??
- Assure enough FLC blocks for freelist splits in concurrent situation.
(there seems to be a class of problems about concurrent free-list
operations: a flush can fail if it causes a split and all the free
blocks have been used meanwhile; simultaneous flush and fills; and the
like. One good idea: since its ok if parent-updates fail, we can reduce
the number of blocks a split can REQUIRE to 1 leaf block, rather than
- Error handling
- Finish implementation of error-handling protocol??
- Error log?
- Recode error msg calls to take less (code) space?
- Count SCAN does not need to copy value strings (since block is copied).
- Jonathan wants the ability to create a seg that need not be kept valid
on disk – one that can just be rebuilt if the system crashes. This
means (a) a WCB bit in HANDLEs to control "essential" updates and (b) an
arg to OPEN-SEG specifying SAFETY (it isnt valid to specify this option
on a per-handle basis).
- Jonathan wants to replace FLUSH-SOME-BUKS with a call that scans ENT-TAB
for a flushable ENT and another call to (carefully) flush it.
- Reduce number of arguments to scan using packets?
- Create memory-resident segment?
- See if packets can be replaced with multiple values?
- Spell check!
- Document format of data file (blocks 0,1,2).
- Document type S blocks.
- Write up thoughts on error-info protocol.
- Write up WRITE order for blk splits.
- Read papers (SAGIV, WANG, TRANSACTION book) to see how THEY ahndle the
difficult problems of delayed update and their ordering, and the 2-block
mod problem for DELETE.