Basement Tombstones
Further progress towards the tidying up of basement tombstones in the Ledger, with support added for key-listing to help with testing (and as a potentially required feature). The test is incomplete, but committing at this stage as the last commit broke some tests (within the test code). There are some outstanding questions about the handling of tombstones in the Journal during compaction. There exists a condition whereby values could return if a recent journal is compacted and tombstones are removed (as they are no longer present), but older journals have not been compacted. Now on stop/start - if the Ledger is wiped the removal of the keys will be forgotten but the original PUTs would still remain. The safest thing maybe to have rule that tombstones are never deleted from the Inker's Journal - and accept the build-up of garbage. Or there could be an addition to the compaction process that checks back through all the inker files to check that the Key of a tombstone is not present in the past, before it is removed in the compaction.
This commit is contained in:
parent
e9c568a8b3
commit
c78b5bca7d
6 changed files with 130 additions and 7 deletions
|
@ -28,7 +28,7 @@
|
|||
|
||||
reset_filestructure() ->
|
||||
% io:format("Waiting ~w ms to give a chance for all file closes " ++
|
||||
"to complete~n", [Wait]),
|
||||
% "to complete~n", [Wait]),
|
||||
% timer:sleep(Wait),
|
||||
RootPath = "test",
|
||||
filelib:ensure_dir(RootPath ++ "/journal/"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue