cockroachdb / cockroachdb/pebble

db: dictionary compression

Open
#3,453 4 comments 0 reactions 0 assignees View on GitHub
A-storage A-write-amp T-storage
Dominant language
Go
Stars
6k
Forks
584
Avg merge
16h 35m
Merged PRs (30d)
5

Description

Today Pebble's sstable compression is entirely per-block. If there's significant repetition across blocks within a sstable, the repetition is persisted. We could consider building dictionaries that are used across all the blocks of an sstable in the hopes of achieving better compression ratios. See RocksDB's feature:

See https://github.com/facebook/rocksdb/wiki/Dictionary-Compression

Jira issue: PEBBLE-106

Epic CRDB-49140

Contributor guide

No contributing guide indexed for this repository

Research direction

No Pebble file or test is named. Start by reading the linked RocksDB Dictionary Compression design, then locate Pebble's per-block SSTable compression path and determine how an SSTable-wide dictionary would be selected and shared. Done should include a concrete design and evidence that cross-block repetition improves compression ratios.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
databases, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.