-
Notifications
You must be signed in to change notification settings - Fork 6.7k
RocksDB Release Methodology
RocksDB has time-based periodic releases. We typically try to make a release once every month. The release process involves compiling a 'release' build, running an extensive suite of tests and then making the 'release' on github.
The tests that we typically run are:
- run all unit tests
- valgrind and asan checks
- db_stress to validate data correctness
- db_bench to validate performance results
The 'master' branch is used for code development. Most new features, performance improvements, new unit tests, etc are code reviewed via the open source link http://reviews.facebook.net, and once accepted, are committed to the 'master' branch.
Regression tests (http://github.com/facebook/rocksdb/blob/master/build_tools/regression_build_test.sh) and valgrind tests (http://github.com/facebook/rocksdb/blob/master/build_tools/valgrind_test.sh) are run every night. Code coverage tools can be found at https://github.com/facebook/rocksdb/blob/master/coverage/coverage_test.sh.
Sometimes, a large feature development requires an iterative approach which could potentially take a few weeks or even months. These type of feature development happens on a branch, (e.g. 'performance' branch), this makes it easier to collaborate among multiple developers. Once the feature is complete and tested, then that branch is merged back to master.
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
- SST Partitioner
- 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
- Performance
- Projects Being Developed
- Misc