There were mentioned two good things – how to reclaim space and column families:
Deletion:
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.
"Request cursor statistics after range iteration. If the amount of missing data has exceeded threshold to run compaction for a given range.
DeleteFilesInRange, allows you to delete files keys in which are completely within the specified range"
“In the classic engines for each container (data or index) there is one tree. In MongoRocks, one LSM tree for all” – picture on page 80
“RocksDB supports many LSM trees (column families) united by journal WAL to ensure transactional. Originally made and applied with the expectation of Mysql. MongoRocks should have one LSM tree for one prefix”
I’ve found a few feature requests where people asked about column families and got rejected, so it would be better to focus on LSM compaction.
As far as i understood, if iterator notices huge range of tombstones it forces compactions in this range. Is it possible to implement in Badger?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.