forked from facebook/rocksdb
-
Notifications
You must be signed in to change notification settings - Fork 0
What's new in RocksDB2.7
Igor Canadi edited this page Jan 29, 2014
·
16 revisions
- Renamed
StackableDB::GetRawDB()
toStackableDB::GetBaseDB()
. The call returns the underlying DB* for a given StackableDB. Before, GetRawDB() returned the raw DB* by stripping away all StackableDB layers. - Renamed
WriteBatch::Data()
const std::string& Data() const
. - Renamed class
TableStats
toTableProperties
. - Deleted class
PrefixHashRepFactory
. Please useNewHashSkipListRepFactory()
instead. - Supported multi-threaded
EnableFileDeletions()
andDisableFileDeletions()
- b60c14f - Added
DB::GetOptions()
- 3ce3658 - Added
DB::GetDbIdentity()
- 1880268 -
DB::CompactRange()
now returns a status aba2acb
- Added BackupableDB
- Implemented TailingIterator, a special type of iterator that doesn't create a snapshot (can be used to read newly inserted data) and is optimized for doing sequential reads.
- Added property block for table, which allows (1) a table to store its metadata and (2) end user to collect and store properties they are interested in.
- Enabled caching index and filter block in block cache (turned off by default).
- Supported error report when doing manual compaction.
- Supported additional Linux platform flavors and Mac OS.
- Put with
SliceParts
- Variant ofPut()
that gathers output likewritev(2)
-- 8a46ecd - Bug fixes and code refactor for compatibility with upcoming Column Family feature.
- 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: 5b825d -- huge increase in performance -- shared pointers are slow
- Optimized locking for get -- 1fdb3f -- 1.5x QPS increase for some workloads
- Cache speedup - e8d40c3
- 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. -- c01676e4
- 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
-
Developer's Guide
- Basic Operations
- Known Issues
- Block-based Table Format
- MANIFEST
- Block Cache
- PlainTable Format
- Bloom Filter
- Hash-Based Memtable
- Prefix seek
- Read-Modify-Write Operator
- Tailing Iterator
- Single Delete
- Time to Live (TTL) Support
- Huge Page TLB Support
- Column Families
- Universal compaction style
- FIFO compaction style
- Write Ahead Log File Format
- WAL Recovery Modes
- EventListener
- Rate Limiter
- RocksDB Options File
- Transactions
- Creating and Ingesting SST files
- Statistics
- Perf Context and IO Stats Context
- Logger
- Tools / Utilities
- Implementation Details
- RocksJava
- Performance
- Misc