Moved from GitHub badger/909
Posted by n-ozerov:
Recenty, i’ve found report about MongoDB engine based on RocksDB: https://pgday.ru/presentation/178/5964963da443b.pdf
Google Translated version is here: https://drive.google.com/file/d/1JL2XbYTQFm7favk77TuX9We36ZFAHU2p/view?usp=sharing
There were mentioned two good things – how to reclaim space and column families:
- Collecting stats about tombstones during iteration on range.
- If the amount exceeded threshold, start compaction for this range.
This could be helpful for scenarios with many (or batch range) deletion (queues, etc).
Also it has function DeleteFilesInRange which allows to delete files if all keys in specified range.
Column families allows to use many LSM trees which share same WAL to allow making transactions. Which could be good for some operation like deleting whole column by deleting whole tree, it also should take less space than using prefixes.
Sorry for my bad English. I’ll try to explain again if you didn’t understand me.