google / google/leveldb

when we do memtable dump, split memtable into different files with range

Open
#405 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
39.4k
Forks
8.2k
PR merge metrics
No merged PRs in 30d

Description

As we know, files in level 0 may overlap each other. when we do level 0 compaction, it may involve all files in level 0 and level 1, this will consume all disk io capacity and take a long time.

So i have a idea, when we do WriteLevel0Table, we can write memtable to different level 0 files with range. For example, the key range is [0, 1000], we can write [0, 100) to file 0 , [100, 200) to file 1 and so on .

When we do this optimization, level 0 -> 1 compaction will not invole all files, so we can decrease write amplification.

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.