From 3f3f3e4f5d3b2599d66c7bde7b5efcebddcb633b Mon Sep 17 00:00:00 2001 From: Scott Lystig Fritchie Date: Tue, 23 Sep 2014 18:25:24 +0900 Subject: [PATCH] Update README.tango.md with latest checkpoint implementation fix notes --- prototype/tango-prototype/README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/prototype/tango-prototype/README.md b/prototype/tango-prototype/README.md index eb7ef1a..15b0d21 100644 --- a/prototype/tango-prototype/README.md +++ b/prototype/tango-prototype/README.md @@ -4,15 +4,30 @@ Tango prototype TODO list __ The current checkpoint implementation is fundamentally broken and 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 2: checkpointing is for the weak and the memory-constrained, so don't bother. Instead, rip out the current checkpoint code, 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 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.