-
Notifications
You must be signed in to change notification settings - Fork 6.4k
What's new in RocksDB2.7
Igor Canadi edited this page Jan 29, 2014
·
16 revisions
- Removed PrefixHashRepFactory memtable factory. Please use NewHashSkipListRepFactory instead.
- Renamed StackableDB::GetRawDB() to StackableDB::GetBaseDB(). The call returns the underlying DB* for a given StackableDB. Before, GetRawDB() returned the raw DB* by stripping away all StackableDB layers.
- Support multi-threaded EnableFileDeletions() and DisableFileDeletions() - https://github.com/facebook/rocksdb/commit/b60c14f6ee00dc179d400573d4b172d228a8c5a8
- Added DB::GetOptions() - https://github.com/facebook/rocksdb/commit/3ce36584111e236e6d7170f0c0dc9adc4b1f949e
- Added DB::GetDbIdentity() - https://github.com/facebook/rocksdb/commit/18802689b8081c4eaa9b477cf8fe1abddc887a3e
- Tailing iterator - wiki page pending (TODO)
- Implemented BackupableDB - https://github.com/facebook/rocksdb/wiki/How-to-backup-RocksDB%3F
- Cache index and filter block in block cache - turned off by default
- Put with SliceParts - Variant of Put() that gathers output like writev(2) -- https://github.com/facebook/rocksdb/commit/8a46ecd3579a2f6578a260c61ad89b24660bc81f
- Huge benchmark performance improvements by multiple efforts. For example, increase in readonly QPS from about 530k in 2.6 release to 1.1 million in 2.7 [1]
- Speeding up a way RocksDB deleted obsolete files - no longer listing the whole directory under a lock -- decrease in p99
- Use raw pointer instead of shared pointer for statistics: https://github.com/facebook/rocksdb/commit/5b825d6964e26ec3b4bb6faa708ebb1787f1d7bd -- huge increase in performance -- shared pointers are slow
- Optimized locking for get -- https://github.com/facebook/rocksdb/commit/1fdb3f7dc60e96394e3e5b69a46ede5d67fb976c -- 1.5x QPS increase for some workloads
- Cache speedup - https://github.com/facebook/rocksdb/commit/e8d40c31b3cca0c3e1ae9abe9b9003b1288026a9
- Implemented autovector, which allocates first N elements on stack. Most of vectors in RocksDB are small. Also, we never want to allocate heap objects while holding a mutex. -- https://github.com/facebook/rocksdb/commit/c01676e46d3be08c3c140361ef1f5884f47d3b3c
- Lots of efforts to move malloc, memcpy and IO outside of locks
[1] You can see the exact parameters in rocksdb/build_tools/regression_build_test.sh
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