beneath
beneath copied to clipboard
Record deletes and consistent writes
Problem to solve and solution
We want record deletes and strongly consistent writes. Would be really useful for e.g. checkpointers.
Proposed solution and changes
WIP:
- Rewrite engine to distinguish keys and values. Null values will then mean deletes (what about keys that span all columns?).
- Engine interface update to support deletes and immediate writes
- Data server should execute immediate writes directly on the index driver, not pass over MQ first
- Add tombstone support to the data server, client libraries, and frontend
- The frontend interfaces must support tombstones
- Initially, we'll do a weak implementation in the Bigtable driver with tombstones and simultaneous log and index writes
Risks and challenges
- We really need transactional capabilities at the index layer to do this right. So this effectively adds the right interface, but the backend implementation is an MVP. When we adopt a better indexing engine (like FDB), we can do it right on the backend.
- Without log compaction and warehouse merging, deletes won't completely remove data from our servers