Calling write/append with incomplete=True eventually calls version_store.append_incomplete. This method reads the APPEND_REF key, modifies the next_key field of the TimeSeriesDescriptor, and then writes it back to storage again.
This is pointless, as compact_incompletes as accessible to users ignores the linked-list structure, and collects APPEND_DATA keys via iteration. In addition, in a truly parallel write/append, the linked list would not be in the correct order anyway.
Calling write with parallel=True does the correct thing. Namely, writing APPEND_DATA keys without touching the linked-list structure. Both write and append with incomplete=True should be modified to do the same thing.
The functionality to write linked-list structures of APPEND_DATA keys is useful for testing though, so this should be moved to the LibraryTool.
Calling
write/append
withincomplete=True
eventually callsversion_store.append_incomplete
. This method reads theAPPEND_REF
key, modifies thenext_key
field of theTimeSeriesDescriptor
, and then writes it back to storage again. This is pointless, ascompact_incompletes
as accessible to users ignores the linked-list structure, and collectsAPPEND_DATA
keys via iteration. In addition, in a truly parallelwrite/append
, the linked list would not be in the correct order anyway. Calling write withparallel=True
does the correct thing. Namely, writingAPPEND_DATA
keys without touching the linked-list structure. Bothwrite
andappend
withincomplete=True
should be modified to do the same thing. The functionality to write linked-list structures ofAPPEND_DATA
keys is useful for testing though, so this should be moved to theLibraryTool
.