2.3.0
For this release, we now upgrade the RocksDB to 7.9.2
which will significantly improve the compaction performance. Another to be noticed, Kvrocks cluster mode will persist the cluster nodes' topology in the local file by default, you can disable it in flight by config set persist-cluster-nodes-enable no
.
New Features
- Add config for log cleaner by @IoCing in #1171
- Persist the cluster nodes info after applying the cluster topology by @git-hulk in #1219
- Add ability to set log level via config file by @torwig in #1230
Improvements
- Update RocksDB to 7.9.2 & Google test to 1.13.0 by @aleksraiden in #1229
- Unify write-like syscall wrappers in util.cc by @PragmaTwice in #1086
- Add LTO/IPO compile support by @wanghenshui in #764
- Introduce fmt dependency to simplify string formatting by @PragmaTwice in #1139
- Add the compatible Redis version to the info command by @xiaobiaozhao in #1158
- Make IO functions return StatusOr by @PragmaTwice in #1192
HrangebyLex
supports specify intervals by @tanruixiang in #1120- Remove old string parsing util and replace them by ParseInt by @PragmaTwice in #1191
- Add nodiscard attribute to Status and StatusOr by @PragmaTwice in #1193
- Add new lines after every section in Server::GetInfo by @kukey in #1199
- Add support of stream migration during slot migration process by @torwig in #1197
- Add timeout when replica connect master by @caipengbo in #1172
- Refactor slot migrate Go-tests by @torwig in #1208
- Refactoring: check function return Status marked as [[nodiscard]] by @torwig in #1214
- Make config load errors more friendly by @torwig in #1217
- Inplace construct error message in StatusOr while data type is large enough by @PragmaTwice in #1198
- Refine Status::Prefixed and add more test cases by @PragmaTwice in #1200
- Refactor return value of functions that related to a slot migration by @torwig in #1205
- Add integer parsing with unit support by @PragmaTwice in #1218
- Kvrocks2Redis: decode slot ID in cluster mode by @torwig in #1222
- Refactor config parsing in kvrocks2redis by @PragmaTwice in #1221
- Introduce command register mechanism to allow splitting command definition to multiple TUs by @PragmaTwice in #1140
- Add ParseFloat and replace stod with it by @PragmaTwice in #1227
- Make docker image more portable by @PragmaTwice in #1233
- Allow to enable the async_io option to improve the performance by @xiaobiaozhao in #1215
- Add TRYAGAIN prefix to error message for writing forbidden slot by @PragmaTwice in #1240
Bug Fixes
- Fix logging initialized before loading by @mapleFU in #1061
- Harden list_test.go by @tisonkun in #1141
- Fix redis cli test will fail if cannot read response at once by @git-hulk in #1129
- Fix the script load should return SHA as the bulk string by @git-hulk in #1133
- Fix format output in Server::GetRocksDBStatsJson by @PragmaTwice in #1142
- Increase blocking timeout to harden the blocking pop test case by @git-hulk in #1128
- Fix wrongly append the ERR prefix in no script error by @git-hulk in #1162
- Check if the thread is joinable before joining in the replication thread by @git-hulk in #1195
- Fix SockConect doesn't resolve domain before connecting by @git-hulk in #1183
- Fix error message passing in Server::Start by @PragmaTwice in #1225
- Fix deadlock when unblocking connection on stream by @torwig in #1228
Refine Code Style
- Clean code in redis_reply.cc by @PragmaTwice in #1085
- Fix
modernize-use-emplace
andperformance-unnecessary-copy-initialization
reported by clang-tidy by @PragmaTwice in #1084 - Fix performance-unnecessary-value-param warning reported by clang-tidy by @tanruixiang in #1106
- Fix modernize-use-bool-literals warning reported by clang-tidy by @MaximSmolskiy in #1107
- Fix modernize-make-unique warning reported by clang-tidy by @dl239 in #1113
- Fix performance-for-range-copy warning reported by clang-tidy by @MaximSmolskiy in #1108
- Fix performance-faster-string-find warning reported by clang-tidy by @MaximSmolskiy in #1109
- Fix modernize-redundant-void-arg warning reported by clang-tidy by @MaximSmolskiy in #1110
- Fix
modernize-avoid-bind
warning reported by clang-tidy by @Phoeniwx in #1121 - Fix modernize-use-auto warning reported by clang-tidy by @MaximSmolskiy in #1111
- Fix modernize-use-using warning reported by clang-tidy by @tanruixiang in #1114
- Fix performance-inefficient-vector-operation warning reported by clang-tidy by @tanruixiang in #1115
- Fix cppcoreguidelines-special-member-functions warning reported by cl… by @maochongxin in #1124
- Fix modernize-loop-convert warning reported by clang-tidy by @MaximSmolskiy in #1112
- Improve files structure by @tisonkun in #1134
- Tidy files inside src/commands by @torwig in #1137
- Replace c-style typedef with direct definition or using by @PragmaTwice in #1143
- Fix wrong include in redis_cmd.cc by @PragmaTwice in #1145
- Move VERSION to src/folder #1148 by @CNLHC in #1149
- Fix inconsistency between Set and ToString in OctalField by @PragmaTwice in #1151
- Fix cppcoreguidelines-init-variables warning reported by clang-tidy by @MaximSmolskiy in #1153
- Fix modernize-use-nullptr warning reported by clang-tidy by @MaximSmolskiy in #1156
- Fix cppcoreguidelines-macro-usage warning reported by clang-tidy by @PragmaTwice in #1155
- Fix StatusOr copy assignment by @SGZW in #1173
- Fix cppcoreguidelines-narrowing-conversions warning reported by clang-tidy by @MaximSmolskiy in #1159
- XREAD returns dedicated status if it blocks by @torwig in #1232
New Contributors
- @MaximSmolskiy made their first contribution in #1107
- @dl239 made their first contribution in #1113
- @Phoeniwx made their first contribution in #1121
- @wanghenshui made their first contribution in #764
- @CNLHC made their first contribution in #1149
- @SGZW made their first contribution in #1173
- @kukey made their first contribution in #1199