2.2.0
Notice
For this release, we are still using rocksdb 6.29, but we will update to rocksdb 7 in the next release (as in the unstable branch).
New Features
- Allow using LuaJIT to improve the performance of the Lua script (#697)
- Add the new command GETDEL (#771)
- Add the new command SMISMEMBER (#778)
- Add the new data structure Redis STREAM (#745)
- Add TLS support for kvrocks connections (#797)
- Add the new command HELLO (#881)
- Add the new command EVAL_RO (#782)
- Add the new command DISK (#882)
- Add the new command GETEX (#961)
- Support CLI options for the kvrocks server (#1037)
- Add the new command options for ZADD (#1022)
- Add ZLIB dependency for compression in rocksdb (#1078)
Improvements
- Switch the default value of log-dir to stdout (#754)
- Add fpm packaging to x.py (#752)
- Propagate sanitizer flags to all cmake deps (#759)
- Move runtest to x.py with customized server/cli path (#765)
- Add StatusOr for error handling in modern C++ style (#768)
- Add ParseInt in StatusOr style (#787)
- Show function name in backtrace (#796)
- Optimize get bitmap string and remove redundant num2bit array (#793)
- Allows Kvrocks to listen to only the unix socket (#809)
- Update dependency to latest version (lz4, libevent, gtest) (#828)
- Export the rocksdb write options (#885)
- Support quoted string and inline comment in config (#849)
- Add the FilterBlobByKey for SubKeyFilter (#902)
- Avoid using Get when iterating sub-keys during migration (#906)
- Support EXAT/PEXAT option in the set command (#901)
- Return from HRANGE if the key wasn't found (#923)
- Update jemalloc to 5.3.0 (#940)
- Use ParseInt to replace sto*, ato* (#924)
- Add UniqueFD and ScopeExit (#973)
- Align georadius behavior of redis (#993)
- Align the expire option behavior of redis (#1017)
- Support config set backup-dir new-dir (#1026)
- Use a consistent way to get the current time (#1038)
- Add support for showing used_memory_startup (#1044)
- Improve stack trace format and clean main.cc (#1053)
- Add command parser (#1032)
- Add WriteBatchInspector to inspect WriteBatch (#1069)
- Improve libunwind linking in CMake (#1079)
Bug Fixes
- Fix didn't return the out of range error in cluster import command(#767)
- Fix should forbid to create of the default namespace (#772)
- Fix CMake configuration error in snappy (#803)
- Fix inline protocol don't allow LF only EOL (#808)
- Fix successor commands won't be processed before receiving the next read event (#839)
- Fix georadius should return an empty set if the key does not exist (#845)
- Fix config set rocksdb.blob_garbage_collection_age_cutoff (#914)
- Fix ping with arg should return a bulk string (#933)
- Fix server cannot exit properly when enabling cluster mode (#969)
- Fix shouldn't lowercase the configuration value in kvrocks2redis(#971)
- Fix don't duplicate killed clients which have already flagged kCloseAfterReply (#1020)
- Fix properly parse cmake version (#1043)
- Fix rename-command only the first one works(#1047)
- Fix CAS and CAD return statuses (#1055)
- Fix random crash in the migration test case (#1068)
Test Refactoring
TCL tests are now moved to Go, refer to #811.