6.23.3 (2021-08-09)
Bug Fixes
- Removed a call to
RenameFile()
on a non-existent info log file ("LOG") when opening a new DB. Such a call was guaranteed to fail though did not impact applications since we swallowed the error. Now we also stopped swallowing errors in renaming "LOG" file. - Fixed a bug affecting the batched
MultiGet
API when used with keys spanning multiple column families andsorted_input == false
.
6.23.2 (2021-08-04)
Bug Fixes
- Fixed a race related to the destruction of
ColumnFamilyData
objects. The earlier logic unlocked the DB mutex before destroying the thread-localSuperVersion
pointers, which could result in a process crash if another thread managed to get a reference to theColumnFamilyData
object. - Fixed an issue where
OnFlushCompleted
was not called for atomic flush.
6.23.1 (2021-07-22)
Bug Fixes
- Fix a race condition during multiple DB instances opening.
6.23.0 (2021-07-16)
Behavior Changes
- Obsolete keys in the bottommost level that were preserved for a snapshot will now be cleaned upon snapshot release in all cases. This form of compaction (snapshot release triggered compaction) previously had an artificial limitation that multiple tombstones needed to be present.
Bug Fixes
- Blob file checksums are now printed in hexadecimal format when using the
manifest_dump
ldb
command. GetLiveFilesMetaData()
now populates thetemperature
,oldest_ancester_time
, andfile_creation_time
fields of itsLiveFileMetaData
results when the information is available. Previously these fields always contained zero indicating unknown.- Fix mismatches of OnCompaction{Begin,Completed} in case of DisableManualCompaction().
- Fix continuous logging of an existing background error on every user write
- Fix a bug that
Get()
return Status::OK() and an empty value for non-existent key whenread_options.read_tier = kBlockCacheTier
. - Fix a bug that stat in
get_context
didn't accumulate to statistics when query is failed.
New Features
- ldb has a new feature,
list_live_files_metadata
, that shows the live SST files, as well as their LSM storage level and the column family they belong to. - The new BlobDB implementation now tracks the amount of garbage in each blob file in the MANIFEST.
- Integrated BlobDB now supports Merge with base values (Put/Delete etc.).
- RemoteCompaction supports sub-compaction, the job_id in the user interface is changed from
int
touint64_t
to support sub-compaction id. - Expose statistics option in RemoteCompaction worker.
Public API change
- Added APIs to the Customizable class to allow developers to create their own Customizable classes. Created the utilities/customizable_util.h file to contain helper methods for developing new Customizable classes.
- Change signature of SecondaryCache::Name(). Make SecondaryCache customizable and add SecondaryCache::CreateFromString method.