Update README.tango.md with latest checkpoint implementation fix notes

This commit is contained in:
Scott Lystig Fritchie 2014-09-23 18:25:24 +09:00
parent c5ed355dac
commit 3f3f3e4f5d

View file

@ -4,15 +4,30 @@ Tango prototype TODO list
__ The current checkpoint implementation is fundamentally broken and __ The current checkpoint implementation is fundamentally broken and
needs a rewrite, or else. needs a rewrite, or else.
This issue is not mentioned at all in the Tango paper.
option 1: fix checkpoint to be 100% correct option 1: fix checkpoint to be 100% correct
option 2: checkpointing is for the weak and the memory-constrained, so option 2: checkpointing is for the weak and the memory-constrained, so
don't bother. Instead, rip out the current checkpoint code, don't bother. Instead, rip out the current checkpoint code,
period. period.
option 3: other
__ Checkpoint fix option #1: history splicing within the same OID? xx Checkpoint fix option #1: history splicing within the same OID?
__ Checkpoint fix option #2: checkpoint to a new OID, history writes to both xx Checkpoint fix option #2: checkpoint to a new OID, history writes to both
OIDs during the CP, then a marker in the old OID OIDs during the CP, then a marker in the old OID
to switch over to the new OID? to switch over to the new OID?
History splicing has a flaw that I belive just won't work. The switch to a
new OID has problems with updates written to the old OID before and before the
new checkpoint has finished.
I believe that a checkpoint where:
* all Tango writes, checkpoint and non-checkpoint alike, are noted with
a checkpoint number.
* that checkpoint number is strictly increasing
* a new checkpoint has a new checkpoint number
* scans ignore blocks with checkpoint numbers larger than the current
active checkpoint #, until the checkpoint is complete.
... ought to work correctly.