Skip to content

dieperdev/rocksdb-sst-repro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rocksdb-sst-repro

This repository contains scripts to reproduce a (believed to be) bug within RocksDB that does not let you reduce the levels of a database created from SST files with multiple column families, even when specifying CLI options.

Setup

  1. Install Go 1.26.0 from here: https://go.dev/dl/. The Go version should not matter as long as it is >= 1.25.0
  2. Run bash ./install_rocksdb.sh to download and compile and install RocksDB v10.10.1 from source. You may need to run this with sudo.
  3. Run bash ./build.sh to build the executable rocksdb-sst-repro, which will be used to create SST files
  4. Run mkdir data/ and then ./rocksdb-sst-repro to create SST files for this reproduction
  5. Run bash ./ingest.sh to ingest the SST files into the directory ingested_data/ (created automatically)
  6. Run bash ./compact_and_reduce.sh to compact the database and reduce it to 3 levels. Compaction should work but level reduction should fail.

Running the following commands (besides the one in compact_and_reduce.sh) will still result in reduce_levels failing:

./rocksdb-10.10.1/ldb --db=ingested_data/ reduce_levels --new_levels=3 --print_old_levels --column_family=default
./rocksdb-10.10.1/ldb --db=ingested_data/ reduce_levels --new_levels=3 --print_old_levels --column_family=othercf
./rocksdb-10.10.1/ldb --db=ingested_data/ reduce_levels --new_levels=3 --print_old_levels --column_family=default,othercf
./rocksdb-10.10.1/ldb --db=ingested_data/ reduce_levels --new_levels=3 --print_old_levels --column_family="default,othercf"

The error message returned will always be: Failed: Invalid argument: Column families not opened: othercf

License

Apache 2.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors