Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
You should only skip tombstones when you are compacting the final (i.e., largest) level; otherwise, tombstones carry over to other levels. It's one of the properties of LSM dbs that deletions/tombstones records linger for a long time, though some databases (eg RocksDB) put in some optimizations to get around this.
Co-incidentally, I fixed this issue recently in my own implementation of lsm db (in rust): https://github.com/vardhan/lsmdb/commit/f3fd32302682a447cc02...
Writes in MongoDB are persisted before the server returns acknowledgement. For a typical replica set deployment, this additionally means replicated and made durable on disk for a majority of nodes.
MongoDB has tunable durability guarantees; clients can opt-out of this behavior.
The layers are deep, but this is the function that handles waiting before acknowledgement:
https://github.com/mongodb/mongo/blob/20f42d9dc89999d119f35a...