prevent flush delete entry if possible
Background:
Ceph code uses RocksDB to store MD objects and the change-log entries.
Ceph change-log entries are written once and removed when the primary receives ACK from all the replicas.
The reason Ceph uses RocksDB for the change log is to be able to share the WAL used by Ceph Metadata objects (which are using RocksDB in a more traditional way).
The operations happen together (we create/update a MD object/s with every write operation and create a temporary change-log-entry describing the operation) so Ceph code can commit the Metadata and the change-log in a single transaction to the WAL.
We would like to filter out all Objects hit by delete operations during RocksDB::Flush() and never commit them to the disk.
Ideally we should be removing Objects hit by delete operations while in the Memtable, but that is impossible in RocksDB because their Memtable are immutable.
prevent flush delete entry if possible
Background:
Ceph code uses RocksDB to store MD objects and the change-log entries.
Ceph change-log entries are written once and removed when the primary receives ACK from all the replicas.
The reason Ceph uses RocksDB for the change log is to be able to share the WAL used by Ceph Metadata objects (which are using RocksDB in a more traditional way).
The operations happen together (we create/update a MD object/s with every write operation and create a temporary change-log-entry describing the operation) so Ceph code can commit the Metadata and the change-log in a single transaction to the WAL.
We would like to filter out all Objects hit by delete operations during RocksDB::Flush() and never commit them to the disk.
Ideally we should be removing Objects hit by delete operations while in the Memtable, but that is impossible in RocksDB because their Memtable are immutable.