facebook / facebook/rocksdb

Efficient way to split a DB into 2 or multiple DB based on key range?

Open
#9,828 13 comments 0 reactions 0 assignees View on GitHub
design discussion
Dominant language
C++
Stars
32.1k
Forks
6.9k
Avg merge
32m
Merged PRs (30d)
1

Description

Is there an existing function or logic to split one DB into 2 or more DB based on the key range?

For example, the current DB key range is [0, 1000]. To split the DB into 2 small DBs with a balanced space size, the 2 new DB may be [0, 420] and [430, 1000] (say each contains 200 KV-pairs).

Theoretically, we just need to split at most 1 SST file in each level if it is a 2-DB split. Other SST files can be a trivial move.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.