Summary: I'm cleaning up some code preparing for the big diff review tomorrow. This is the first part of the cleanup. Changes are mostly cosmetic. The goal is to decrease amount of code difference between columnfamilies and master branch. This diff also fixes race condition when dropping column family. Test Plan: Ran db_stress with variety of parameters Reviewers: dhruba, haobo Differential Revision: https://reviews.facebook.net/D16833
3.7 KiB
3.7 KiB
Rocksdb Change Log
Unreleased (will be released in 3.0)
- By default, max_background_flushes is 1 and flush process is removed from background compaction process. Flush process is now always executed in high priority thread pool.
- Column family support
- If you write something to the non-default column family with disableWAL = true, you need to Flush the column family before exiting if you want your data to be persistent
Unreleased (will be relased in 2.8)
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
- Removed BackupEngine::DeleteBackupsNewerThan() function
- Added new option -- verify_checksums_in_compaction
- Chagned Options.prefix_extractor from raw pointer to shared_ptr (take ownership) Changed HashSkipListRepFactory and HashLinkListRepFactory constructor to not take SliceTransform object (use Options.prefix_extractor implicitly)
New Features
- If we find one truncated record at the end of the MANIFEST or WAL files, we will ignore it. We assume that writers of these records were interrupted and that we can safely ignore it.
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