Details
-
Bug
-
Resolution: Fixed
-
Major
-
7.1.0
-
Triaged
-
1
-
No
-
KV-Engine Sprint 2021 August
Description
Explored this idea here https://issues.couchbase.com/browse/MB-47991?focusedCommentId=535990&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-535990. Storing items as commit sync writes on disk is essentially a waste of space (uses couchstore V3 metadata which adds 7 bytes) as we can never assume that a mutation was not a commit when read from disk (could have been received via DCP which sends mutations rather than commits).
Want to target this for Neo as we can freely change the magma metadata now and save some space. If we make the durability parts of the magma metadata optional (MB-48034) then a commit will be able to save 6 bytes (+ 2 bits of an existing field) by not storing the prepare seqno. For couchstore we could simply store the metadata as V1 instead of V3. We should change both (rather than just magma) as it makes it easier to reason about the KVStore implementation and SyncWrites.
Attachments
Issue Links
- causes
-
MB-50286 [Upgrade]: CommitSyncWrites written by pre-7.1 using V3 metadata are not deserialised correctly
- Closed