RocksDB Release Notes: Behavior Changes, Feature Removals, Build Changes, New Features, and Fixes
This article outlines the latest RocksDB release updates, including disabled checksum verification options, removed Lite and deprecated APIs, default shared library builds, new compression filter and MultiGetEntity APIs, and various bug fixes such as concurrency issues and async I/O error handling.
RocksDB is a high‑performance embedded key‑value store, a fork of Google LevelDB, optimized for multi‑core CPUs and fast storage, written in C++ with official bindings for C++, C and Java, plus many third‑party bindings.
Behavior Changes
ReadOptions::verify_checksums=false disables checksum verification for non‑ CacheEntryRole::kDataBlock blocks.
When async_io scanning is enabled and POSIX does not support IOUring, a Status::NotSupported error is returned to the user.
Feature Removals
Removed RocksDB Lite .
Removed block_cache_compressed feature and its related statistics.
Removed deprecated Env::LoadEnv() , replaced by Env::CreateFromString() .
Removed deprecated FileSystem::Load() , replaced by FileSystem::CreateFromString() .
Removed deprecated utility functions and their Java bindings: LoadOptionsFromFile , LoadLatestOptions , CheckOptionsCompatibility .
Removed the FactoryFunc for LoadObject from customizable helper methods.
Build Changes
The default make build now produces a shared library instead of a static library; use LIB_MODE=static to override.
New Features
Through the FilterV3 API, compression filters now support wide‑column entities.
Added do_not_compress_roles to CompressedSecondaryCacheOptions to prevent compression of certain block types; filter blocks are now excluded from CompressedSecondaryCache compression by default.
Introduced a new MultiGetEntity API for batch wide‑column point queries.
Fixes
Fixed a data race on ColumnFamilyData::flush_reason caused by concurrent flushes.
Resolved issues with Get and MultiGet when user‑defined timestamps are used with BlobDB.
Corrected atypical behavior of LockWAL() .
Fixed an interaction bug where GetEntity displayed a Blob reference instead of the Blob value.
When ReadOptions::async_io is true but IOUring is unavailable, MultiGet now returns Status::NotSupported() instead of incorrectly returning Status::Corruption() .
Fixed errors opening a DB and recovering from a compressed WAL.
Laravel Tech Community
Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.