mirror of https://github.com/facebook/rocksdb.git
2.7 KiB
2.7 KiB
Rocksdb Change Log
Unreleased
Public API changes
- Removed arena.h from public header files.
- By default, checksums are verified on every read from database
- Added is_manual_compaction to CompactionFilter::Context
- Added "virtual void WaitForJoin() = 0" in class Env
2.7.0 (01/28/2014)
Public API changes
- Renamed
StackableDB::GetRawDB()
toStackableDB::GetBaseDB()
. - Renamed
WriteBatch::Data()
const std::string& Data() const
. - Renamed class
TableStats
toTableProperties
. - Deleted class
PrefixHashRepFactory
. Please useNewHashSkipListRepFactory()
instead. - Supported multi-threaded
EnableFileDeletions()
andDisableFileDeletions()
. - Added
DB::GetOptions()
. - Added
DB::GetDbIdentity()
.
New Features
- 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)
- Bug fixes and code refactor for compatibility with upcoming Column Family feature.
Performance Improvements
- 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