rocksdb
https://github.com/facebook/rocksdb
C++
A library that provides an embeddable, persistent key-value store for fast storage.
Triage Issues!
When you volunteer to triage issues, you'll receive an email each day with a link to an open issue that needs help in this project. You'll also receive instructions on how to triage issues.
Triage Docs!
Receive a documented method or class from your favorite GitHub repos in your inbox every day. If you're really pro, receive undocumented methods or classes and supercharge your commit history.
C++ not yet supported14 Subscribers
Add a CodeTriage badge to rocksdb
Help out
- Issues
- Reject data blocks that would exceed 4GB addressable limit
- Preserve compaction context across worker handoffs (#15437)
- format_version=8 with ReverseBytewiseComparator: a data block holding `k + "\x01"` before `k` stores a common prefix longer than `k`, so Get/MultiGet/Seek of `k` skip its newest version (stale value, deleted value back, or NotFound)
- IngestExternalFiles with atomic_replace_range misses a memtable range tombstone when another tombstone fragment starts at the range limit: no flush, the ingested file goes below the older tombstones and its keys are lost (call returns OK)
- C API: add IngestExternalFiles/IngestExternalFileArg and SstFileReader
- C API: add two-phase external file ingestion
- Stress column family lifecycle recovery (#15434)
- Get() drops the base value of a merge when the key's versions span two SST files of one level and the first file has an older covering range tombstone (MultiGet and iterators are correct)
- Compaction merges across a snapshot at sequence number 0 (e.g. taken right after ingesting into a new DB): DeleteRange'd data comes back permanently and the snapshot loses its value
- RepairDB undoes IngestExternalFile on an intact DB: files from SstFileWriter without a CF handle are moved to lost/, and ingested files lose their global seqno (older values win again)
- Docs
- C++ not yet supported