Skip to content

Some good strategies to implement #909

@n-ozerov

Description

@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:

Deletion:

  1. Collecting stats about tombstones during iteration on range.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions