From 623774b6b50ca012d943cbb64dd9dbaf9d33606c Mon Sep 17 00:00:00 2001 From: Peter Dillinger Date: Mon, 19 Jul 2021 08:30:36 -0700 Subject: [PATCH] Update version and HISTORY for 6.21.3 --- HISTORY.md | 6 +++++- include/rocksdb/version.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index f9944333b..e3066eecb 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,4 +1,9 @@ # Rocksdb Change Log +## 6.21.3 (2021-07-19) +### Bug Fixes +* Fixed confusingly duplicated output in LOG for periodic stats ("DUMPING STATS"), including "Compaction Stats" and "File Read Latency Histogram By Level". (Included because the next bug fix built upon this one.) +* Fixed block cache entry stat scans not to hold the DB mutex, which was a serious performance bug for tail latencies in TransactionDB and likely elsewhere. + ## 6.21.2 (2021-06-14) ### Bug Fixes * Fixed related but less common performance bugs in background gathering of block cache entry statistics. @@ -17,7 +22,6 @@ * Handle return code by io_uring_submit_and_wait() and io_uring_wait_cqe(). * In the IngestExternalFile() API, only try to sync the ingested file if the file is linked and the FileSystem/Env supports reopening a writable file. * Fixed a bug that `AdvancedColumnFamilyOptions.max_compaction_bytes` is under-calculated for manual compaction (`CompactRange()`). Manual compaction is split to multiple compactions if the compaction size exceed the `max_compaction_bytes`. The bug creates much larger compaction which size exceed the user setting. On the other hand, larger manual compaction size can increase the subcompaction parallelism, you can tune that by setting `max_compaction_bytes`. -* Fixed confusingly duplicated output in LOG for periodic stats ("DUMPING STATS"), including "Compaction Stats" and "File Read Latency Histogram By Level". ### Behavior Changes * Due to the fix of false-postive alert of "SST file is ahead of WAL", all the CFs with no SST file (CF empty) will bypass the consistency check. We fixed a false-positive, but introduced a very rare true-negative which will be triggered in the following conditions: A CF with some delete operations in the last a few queries which will result in an empty CF (those are flushed to SST file and a compaction triggered which combines this file and all other SST files and generates an empty CF, or there is another reason to write a manifest entry for this CF after a flush that generates no SST file from an empty CF). The deletion entries are logged in a WAL and this WAL was corrupted, while the CF's log number points to the next WAL (due to the flush). Therefore, the DB can only recover to the point without these trailing deletions and cause the inconsistent DB status. diff --git a/include/rocksdb/version.h b/include/rocksdb/version.h index 6883f7b06..ad71f6319 100644 --- a/include/rocksdb/version.h +++ b/include/rocksdb/version.h @@ -11,7 +11,7 @@ #define ROCKSDB_MAJOR 6 #define ROCKSDB_MINOR 21 -#define ROCKSDB_PATCH 2 +#define ROCKSDB_PATCH 3 // Do not use these. We made the mistake of declaring macros starting with // double underscore. Now we have to live with our choice. We'll deprecate these