This is an automated email from the ASF dual-hosted git repository. hulk pushed a commit to annotated tag v2.1.0 in repository https://gitbox.apache.org/repos/asf/incubator-kvrocks.git
commit d163b26931ccb2aa2eb067e0d3b9ef133d454ca0 Author: git-hulk <[email protected]> AuthorDate: Mon Jul 18 13:44:27 2022 +0800 [source-release] prepare release apache-kvrocks-2.1.0 --- Changelog | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- VERSION | 2 +- 2 files changed, 265 insertions(+), 2 deletions(-) diff --git a/Changelog b/Changelog index e579b7a..0087f53 100644 --- a/Changelog +++ b/Changelog @@ -1,4 +1,267 @@ -# Version 999.999.999 +# Version 2.1.0 + +New features + - Support source packaging by x.py (#729) + - Support to use lz4 compression in RocksDB (#584) + - Allow to send logs to stdout/stderr (#613) + - LPOP/RPOP support pop multi elements (#594) + - Add LMove command (#577) + - Support to listen on the IPV6 address (#554) + - Add support for listening to unix socket (#531) + - Support BITOP command (#471) + - Support unlink command (#517) + +Improvements + - replace shell scripts with x.py (#725) + - Use lock_guard to replace the manual mutex lock/unlock (#723) + - Build docker image with travis ci (#724) + - Return values instead of passing pointers (#722) + - Don't call GetCurrentTime in expired and type when possible (#709) + - Remove the slice `ToString()` when encoding or decoding the key (#707) + - Use the const reference for avoiding copy (#704) + - Check sanitizer status for TCL tests in CI (#698) + - CMake: support ninja as a build backend (#626) + - Build static lib for glog (#618) + - Improve using of ASan and TSan in CMake build (#599) + - PSYNC based on Unique Replication Sequence ID (#538) + - Remove handwritten makefiles to keep only one build system (#576) + - Use FetchContent instead of ExternalProject and git submodules in CMake (#564) + - Upgrade the rocksdb version to 6.29.5(latest version for 6.x) (#555) + - Support to send auth command before migrating slots (#514) + - Allow to dynamic resize the `level_compaction_dynamic_level_bytes` and level base size (#497) + +Bugfixes + - Make the set command consistent with redis (#730) + - Fix some time dependencies in replication.tcl (#688) + - Fix get rocksdb ops tcl test case (#668) + - Fix typos in config file (#669) + - Fix replication tests should wait for server restarted (#660) + - Fix the role command can't be used when loading data (#661) + - Fix Wrongly parsed the RESP empty/null array (#652) + - Fix compile warnings in kvrocks (#653) + - Fix unmatched iterator in Cluster::SetClusterNodes (#646) + - Fix load namespaces from the config file would ignore case (#642) + - Fix RocksDB can't auto resume after disk quota exceeded error (#628) + - Fix don't swallow the error when creating column families failed (#620) + - Compile lua by C++ compilers to avoid memory leaks (#614) + - Fix the slave may crash when restoring the db (#606) + - Fix leaks reported by ASan (#605) + - Fix can't find jemalloc when building with makefile on MacOSX (#557) + - Stop sending files if failed in full synchronization (#539) + - Avoid requirepass and masterauth conflicts with the namespace tokens (#507) + - Fix slave can't resync with master after password change (#520) + - Fix rocksdb cmake depends should use list instead of string (#518) + - Fix spop command should return bulk string instead of array when without count(#515) + - Fix wrong replication state (#506) + - Avoid flush all redis db in kvrocks2redis (#498) + - Fix failing in setting thread name with string more than 16 byte (#496) + - Avoid accessing slot_migrate_ before it is created (#472) + - Fix the connection fd was used after free (#479) + +Others + - Add use case CIRCL.lu (#546) + - Change license to Apache 2.0 (#533) + - Add DISCLAIMER (#558) + - Apply Apache License header for Tcl files (#548) + - Add .asf.yaml file (#545) + - Apply Apache License header for source code (#543) + +# Version 2.0.6 + +New features + - Support slot-based data migration (#430) + Biggest feature of this version, authentically makes kvrocks scalable, + user can use CLUSTERX MIGRATE command to migrate slot and use CLUSTERX + SETSLOT to change cluster slot distribution after finishing migration. + - Make level0_file_num_compaction_trigger of RocksDB configurable (#455) + - Support CLUSTERX SETSLOT command (#463) + +Improvements + - Support executing INFO command during restoring database (#375) + - Auto Rewrite the config after the namespace was updated (#423) + - Support to convert sortedint type to zset type in kvrocks2redis (#431) + - Optimize the seek of RocksDB iterators (#438) + - Make the bitmap range the same with that of Redis (#465) + - Support GET command on bitmap type (#447) + - Support to compile on macOS 11 M1 inside (#450) + +Bugfixes + - Fix the parameter blob_garbage_collection_age_cutoff would be always zero (#425) + - Fix config rewrite overwrite the first rename-command with the last one (#429) + - Fix zrevrangebyscore for multi members with the same max score (#434) + - Fix data race in SetCurrentConnection (#440) + - Fix failing full replication when enabling slave-empty-db-before-fullsync (#446) + - Fix memory leak when full replication (#461) + Maybe leak dozen kilobytes per full replication + + +# Version 2.0.5 + +New features + - Implement zrevrangebylex command (#381) + - Use some rocksdb new feature (#395) + * Support blob db (key-value separation) which requires RocksDB version + greater than 6.18 + * Enable partitioned index/filter for SST and hash index for data block + * Enable whole key filter for memtable + * Remove dynamic resize block and SST + * Only apply compression to SST which level is more than 2 + Please note that, if your rocksdb version is lower than 6.6.0, it can't + reload the data of new version, you should update cautiously. + - Implement CAS and CAD commands for string type (#415) + - Support to use row cache of RocksDB (#407) + +Improvements + - Add rocksdb ops statistics into the info command (#387) + These statistics can more truly reflect the load of rocksdb. + - Add the maxclients to the info command output (#391) + - Add write stall/stop stats to info command output (#396) + - Make kvrocks2redis work (#404) + - Adjust the max open file limit according to the max clients and + rocksdb max open files (#418) + +Related projects + - Kvrocks exporter, a fork of oliver006/redis_exporter to export the kvrocks + metrics, https://github.com/KvrocksLabs/kvrocks_exporter + + +# Version 2.0.4 + +New features + - Support LUA script commands (#363) (#369) + Currently, support EVAL, EVALSHA, and SCRIPT commands, but SCRIPT KILL + and DEBUG subcommands are not supported. + +Improvements + - Allow metadata and subkey CF to share a single block cache (#365) (#373) + - Add master_repl_offset in INFO command output (#374) + +Bugfixes + - Fixed dynamic resize target_file_size_base bug (#368) + Before we only apply this strategy to the default CF(i.e. subkey CF) + + +# Version 2.0.3 + +Improvements + - Use the rocksdb MultiGet interface in the MGET command (#331) + - Avoid useless space allocation in SetBit (#338) + - Auto set master/replica replication by cluster topology (#356) + - Support client kill type subcommands to adapt redis-sentinel (#352) (#361) + From 2.0.2, we support MULTI-EXEC, but don't support client kill type $type, + so MULTI-EXEC will be rollbacked when failing to parse unknown kill type + in client command, and cause redis-sentinel fails to failover. + +Bugfixes + - Fix SETNX and MSETNX commands can't guarantee atomicity (#337) + - Fix the replicas won't reconnect when failing to connect with master (#344) + - Fix master pauses synchronizing with replicas (#347) + - Fix wrong mater port if enabling master-use-repl-port (#360) + + +# Version 2.0.2 + +New features + - Support rename command in config file (#272) + - Support transaction (#285) + Support MULTI, EXEC, DISCARD command, but don't support + WATCH and UNWATCH commands. + - Support the auto-resize-block-and-sst config directive (#289) + - Support to resize rocksdb.block_size automatically (#294) + - Support cluster mode (#302) + Similar with redis cluster mode, use CLUSTERX command to set + cluster topology (#324). + +Data encoding changes + - Encode key with slot id (#291) (#330) + In cluster mode, to be efficient to migrate keys by slot when scale, + we encode key with slot id, but in standalone mode, we don't. That is + to say, data is not compatible between standalone mode with cluster mode, + you must migrate data if you want to change mode, otherwise, kvrocks + will make data corrupt. + +Bugfixes + - Set TCP_KEEPALIVE for replication connection (#284) + Replicas can handle network failure with master, before this commit, + network failure may result in unrecoverable replication interrupt. + - Fix ZSET can't add the same member with different scores (#298) + - Make CONFIG SET command thread safe (#310) + - Fix LTRIM only delete first item, LREM can't correctly remove + repeated items (#314) + +Improvements + - HSET command supports to set multiple fields (#274) + - Allow to use host in the master-slave replication (#301) + - Adapt redis sentinel ping check (#316) + + +# Version 2.0.1 + +New features + - Support COMMAND command (#251) + - Support to purge backups on fullsync to reduce disk space usage (#245) + +Bugfixes + - Fix uninitialized Rocksdb.level0_stop_writes_trigger (#236) + - Fix condition race for ReclaimOldDBPtr (#246) + - Fix data race for accessing database in some commands (#253) (#261) + In spop, zremrangebylex, zremrangebyscore commands, the lock guard + for accessing the database may not work actually. + - Fix returning wrong string range in GETRANGE command (#254) + - Fix skipping wrong CURRENT file when full synchronization (#260) + Resuming broken transfer based files may be not available if replicas + skip transfered wrong CURRENT file of RocksDB. + +Improvements + - Replicas can execute publish command (#238) + - Optimizations for avoiding unnecessary data copy (#239) (#247) + - Allow to run the kvrocks without assigning the config file (#264) + +Dependencies + - Upgrade the jemalloc version to the special commit (#265) + To be able to compile on macOS, upgrade jemalloc to the production + test commit which mentioned in jemalloc/jemalloc#2060. + + +# Version 2.0.0 + +New features + - Don't use extra port for replication (#200) + - Use checkpoint to implement data snapshot when full replication (#208) + Reduce disk space and bandwidth usage and decrease the time of replicas + recovery during full synchronization. + - Use checkpoint to implement kvrocks backup (#232) + - Replicas can empty db before fullsync (#233) + Replicas use less disks space if enabled, but have a risk to lose data. + +Command changes + - Add QPS and input/output kbps for INFO command (#213) + - Add pubsub_patterns for INFO command (#234) + - Slowlog omits args or argument string if too many or big (#215) + +Cluster + - Remove codis support (#217) + From now, we doesn't support codis, you can adopt pre-sharding to implement + cluster, and we are developing new cluster solution that is similar with + redis cluster mode, please see #219. + +Bugfixes + - Fix kvrocks can't auto resume after no space error (#229) + +Dependencies + - Upgrade rocksdb to latest tag v6.19.3 (#226) + + +# Version 1.3.2 + +Bug fixes + - Fix incorrect used_db_size in INFO command (#204) + - Fix the SST file creation time maybe 0 in some unknown conditions (#211) + - Fix get corruption writebatch data after psync restart (#221) + +Improvements + - Optimize TCP keepalive detection time (#201) + # Version 1.3.1 diff --git a/VERSION b/VERSION index 71e0f70..50aea0e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -999.999.999 \ No newline at end of file +2.1.0 \ No newline at end of file
