-
Notifications
You must be signed in to change notification settings - Fork 0
Description
The current Transaction Log design writes and flushes entries to disk prior to calling RocksDB's transaction commit function. Instead, we may want to commit the transaction log during the RocksDB Transaction OnFlushBegin callback. This may allow us to avoid committing the transaction log entries until we know the transaction is conflict-free and committable.
Additionally, we may want to add a OnFlushCompleted listener so that the transaction log system can write a marker to a file in the database directory indicating the SST has been successfully flushed to disk and prior transactions do not need to be replayed. It is possible that RocksDB already writes this information in one of the manifest files (CURRENT -> MANIFEST?).
RocksDB EventListener docs: https://github.com/facebook/rocksdb/wiki/EventListener