diff --git a/HISTORY.md b/HISTORY.md index df4bc3e4f..f9b56e6ce 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -9,6 +9,11 @@ * Fix a bug in which a snapshot read could be affected by a DeleteRange after the snapshot (#6062). * Fixed two performance issues related to memtable history trimming. First, a new SuperVersion is now created only if some memtables were actually trimmed. Second, trimming is only scheduled if there is at least one flushed memtable that is kept in memory for the purposes of transaction conflict checking. * Fix a bug in WriteBatchWithIndex::MultiGetFromBatchAndDB, which is called by Transaction::MultiGet, that causes due to stale pointer access when the number of keys is > 32 +* BlobDB no longer updates the SST to blob file mapping upon failed compactions. + +### New Features +* It is now possible to enable periodic compactions for the base DB when using BlobDB. +* BlobDB now garbage collects non-TTL blobs when `enable_garbage_collection` is set to `true` in `BlobDBOptions`. Garbage collection is performed during compaction: any valid blobs located in the oldest N files (where N is the number of non-TTL blob files multiplied by the value of `BlobDBOptions::garbage_collection_cutoff`) encountered during compaction get relocated to new blob files, and old blob files are dropped once they are no longer needed. Note: we recommend enabling periodic compactions for the base DB when using this feature to deal with the case when some old blob files are kept alive by SSTs that otherwise do not get picked for compaction. ## 6.6.0 (11/25/2019) ### Bug Fixes