-
Notifications
You must be signed in to change notification settings - Fork 6.4k
Publication
Optimizing Space Amplification in RocksDB, CIDR 2017, Siying Dong, Mark Callaghan, Leonidas Galanis, Dhruba Borthakur, Tony Savor, Michael Stumm link
Reducing DRAM footprint with NVM in Facebook, Assaf Eisenman, Darryl Gardner, Islam AbdelRahman, Jens Axboe, Siying Dong, Kim Hazelwood, Chris Petersen, Asaf Cidon, and Sachin Katti. 2018. In Proceedings of the Thirteenth EuroSys Conference (EuroSys ’18). Association for Computing Machinery, New York, NY, USA, Article 42, 1–13. link
Who’s afraid of uncorrectable bit errors? online recovery of flash errors with distributed redundancy, Amy Tai, Andrew Kryczka, Shobhit O. Kanaujia, Kyle Jamieson, Michael J. Freedman, and Asaf Cidon. 2019. In Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC ’19). USENIX Association, USA, 977–991, link.
Characterizing, Modeling, and Benchmarking RocksDB Key-Value Workloads at Facebook, Zhichao Cao, Siying Dong, Sagar Vemuri, and David H.C. Du, 18th USENIX Conference on File and Storage Technologies (FAST20), USA, 209--223. link.
Evolution of Development Priorities in Key-value Stores Serving Large-scale Applications: The RocksDB Experience, Siying Dong, Andrew Kryczka, and Yanqin Jin, Facebook Inc.; Michael Stumm, University of Toronto, 19th USENIX Conference on File and Storage Technologies (FAST 21). link
RocksDB: Evolution of Development Priorities in a Key-value Store Serving Large-scale Applications, Siying Dong, Andrew Kryczka, and Yanqin Jin, Facebook Inc.; Michael Stumm, Priorities in a Key-value Store Serving Large-scale Applications. ACM Trans. Storage 17, 4, Article 26 (October 2021). link (Expanded version of the FAST21 paper)
Fast Succinct Retrieval and Approximate Membership using Ribbon, Peter C. Dillinger, Lorenz Hübschle-Schneider, Peter Sanders and Stefan Walzer, 20th Symposium on Experimental Algorithms (Best Paper @ SEA 2022). arXiv version, earlier tech report, engineering blog post
Contents
- RocksDB Wiki
- Overview
- RocksDB FAQ
- Terminology
- Requirements
- Contributors' Guide
- Release Methodology
- RocksDB Users and Use Cases
- RocksDB Public Communication and Information Channels
-
Basic Operations
- Iterator
- Prefix seek
- SeekForPrev
- Tailing Iterator
- Compaction Filter
- Multi Column Family Iterator
- Read-Modify-Write (Merge) Operator
- Column Families
- Creating and Ingesting SST files
- Single Delete
- Low Priority Write
- Time to Live (TTL) Support
- Transactions
- Snapshot
- DeleteRange
- Atomic flush
- Read-only and Secondary instances
- Approximate Size
- User-defined Timestamp
- Wide Columns
- BlobDB
- Online Verification
- Options
- MemTable
- Journal
- Cache
- Write Buffer Manager
- Compaction
- SST File Formats
- IO
- Compression
- Full File Checksum and Checksum Handoff
- Background Error Handling
- Huge Page TLB Support
- Tiered Storage (Experimental)
- Logging and Monitoring
- Known Issues
- Troubleshooting Guide
- Tests
- Tools / Utilities
-
Implementation Details
- Delete Stale Files
- Partitioned Index/Filters
- WritePrepared-Transactions
- WriteUnprepared-Transactions
- How we keep track of live SST files
- How we index SST
- Merge Operator Implementation
- RocksDB Repairer
- Write Batch With Index
- Two Phase Commit
- Iterator's Implementation
- Simulation Cache
- [To Be Deprecated] Persistent Read Cache
- DeleteRange Implementation
- unordered_write
- Extending RocksDB
- RocksJava
- Lua
- Performance
- Projects Being Developed
- Misc