2.7.0
Important Notice
Dependency Updates: RocksDB is bumped from 8.3.3 to 8.8.1 in this version.
Highlights:
We're thrilled to announce that the JSON data structure is supported now, huge thanks to @PragmaTwice and all contributors for making this happen. Also, basic capabilities of Functions have been supported to make up for the lack of modularity of the EVAL
-series commands.
From this release, the speedb is allowed to be used as an alternative to rocksdb, you have a try as simple as to append the build option -DENABLE_SPEEDB=ON
. Additionally, dynamic change number of worker threads is also supported and users can change it via CONFIG SET workers {NUMBER}
. Furthermore, numerous new commands and bug fixes have been implemented.
NOTICE: JSON and BloomFilter is not ready for the cluster mode yet.
New Features
- Add the support of the BF.INSERT command by @zncleon in #1768
- Add the support of the BLMPOP command by @HolyLow in #1774
- Add speedb as an alternative to rocksdb by @PragmaTwice in #1792
- Add the support of the namespace replication by @git-hulk in #1776
- Add support of command FCALL_RO by @PragmaTwice in #1791
- Implement FUNCTION commands like redis by @PragmaTwice in #1788
- Add LISTLIB subcommand as an extension to FUNCTION by @PragmaTwice in #1796
- Add the support of the load RDB command by @xq2010 in #1798
- Add subcommand and permission check to RDB command by @PragmaTwice in #1834
- Allow to change the worker thread number in-flight by @git-hulk in #1855
- Support for the BITFIELD command by @julic20s in #1901
- Support pinnable slice get by @chrisxu333 in #1888
- Support for the JSON.ARRLEN command by @Ziy1-Tan in #1856
- Support for the JSON.TOGGLE command by @MaheshMadushan in #1875
- Support JSON.ARRINDEX command by @skyitachi in #1865
- Support for CBOR as a storage format for the JSON data type by @PragmaTwice in #1871
- Support for the JSON.OBJKEYS command by @jihuayu in #1872
- Support for the JSON.ARRPOP command by @jyf111 in #1874
- Add support for the JSON.MERGE command by @2rueSid in #1852
- Support for the JSON.ARRTRIM command by @jihuayu in #1881
- Support for the JSON.ARRINSERT command by @jihuayu in #1867
- Support for JSON.STRAPPEND and JSON.STRLEN command by @guojidan in #1841
- Support for the JSON.OBJLEN command by @isHuangXin in #1860
- Support for the JSON.DEL command by @Qiaolin-Yu in #1859
- Support JSON.NUMINCRBY and JSON.NUMMULTBY command by @skyitachi in #1890
- Support of JSON.FORGET command by @git-hulk in #1917
- Support of JSON.TYPE command by @git-hulk in #1847
- Add type name of JSON in redis_metadata.h by @PragmaTwice in #1848
- Support for the JSON.CLEAR command by @2rueSid in #1850
- Add the support of the JSON.ARRAPPEND command by @lieck in #1837
- Support format options for
JSON.GET
by @PragmaTwice in #1840 - Add support of new command JSON.SET and JSON.GET by @PragmaTwice in #1803
Bug Fixes
- Fix should listen on 0.0.0.0 in docker image by @git-hulk in #1784
- Fix server crash when receiving the empty inline command by @git-hulk in #1909
- Fix unescaped characters in configuration rewriting by @PragmaTwice in #1880
- Fix server cannot start without the configuration file by @git-hulk in #1804
- Fix name of rocksdb's write delay and stop stats in INFO command by @git-hulk in #1916
- Fix potentially overflow msg_namelen value in SupervisedSystemd by @PragmaTwice in #1891
- Fix no binary directory error of xxhash in CMake by @PragmaTwice in #1779
- Fix Endian handling in rdb_intset by @mapleFU in #1830
- Fix TBB compile failure due to
-Werror
and#warning
by @PragmaTwice in #1887 - Fix output when key is not found in JSON.GET by @PragmaTwice in #1845
- Fix status mis-return in JSON.CLEAR and polish code style by @PragmaTwice in #1853
- Fix arity of JSON.SET by @mapleFU in #1849
- Fix JSON.DEL should return 0 if the key was not found by @git-hulk in #1918
- Fix code style of Json::ArrAppend by @PragmaTwice in #1846
Improvements
- Add column family parameter to Compact methon by @raffertyyu in #1878
- Allow create-cluster to be run from other dirs, not just its own dir by @enjoy-binbin in #1773
- Enable rocksdb read option
avoid_unnecessary_blocking_io
to avoid unexpected long latency by @wanghenshui in #1903 - Make a compile error while facing unused variables by @PragmaTwice in #1854
- Add more sanity checks for docker image by @jyf111 in #1877
- Change the default value of cmake option DEPS_FETCH_PROXY by @git-hulk in #1900
- Catch up for json-set with multiple values by @mapleFU in #1827
- Bump rocksdb to 8.5.4 by @aleksraiden in #1786
- Bump rocksdb to version 8.6.7 by @aleksraiden in #1794
- Bump rocksdb to 8.7.3 by @aleksraiden in #1902
- Bump rocksdb to 8.8.1 by @aleksraiden in #1904
- Bump jsoncons to 0.172.0 by @aleksraiden in #1911
- Bump jsoncons to 0.171.1 by @aleksraiden in #183
- Bump oneTBB to 2011.11.0 by @aleksraiden in #1895
- Bump speedb to 2.7.0 by @aleksraiden in #1857
Misc
- Skip TLS replica test until fixed by @PragmaTwice in #1780
- Restore the GCC TSAN test in CI by @PragmaTwice in #1782
- Update controller URL in README.md by @PragmaTwice in #1785
- Split functions in main.cc to multiple headers by @PragmaTwice in #1787
- Style enhancement for rdb load by @mapleFU in #1839
- Refactor command utilities to class methods by @PragmaTwice in #1858
- Unify server's shorten form, change svr to srv by @git-hulk in #1861
- Polish wording and code block style in README by @PragmaTwice in #1862
- Only run publish-nightly action on the main repo by @jihuayu in #1868
- Don't rewrite unchanged items into the configuration file by @git-hulk in #1882
- Fix go test
JSON.TOGGLE basics
parameters order by @jihuayu in #1892 - Graceful shutdown the workers when reducing worker threads by @git-hulk in #1863
- Add the bind argument to the docker quickstart section by @git-hulk in #1906
- Clear unused vector by @kay011 in #1915
- Improve the command JSON.MERGE via jsonpath::remove by @2rueSid in #1919
- Minor refactor the return value of JSON methods by @git-hulk in #1920
New Contributors
- @lieck made their first contribution in #1837
- @2rueSid made their first contribution in #1850
- @Ziy1-Tan made their first contribution in #1856
- @jyf111 made their first contribution in #1874
- @raffertyyu made their first contribution in #1878
- @MaheshMadushan made their first contribution in #1875
- @chrisxu333 made their first contribution in #1888
- @kay011 made their first contribution in #1915
- @julic20s made their first contribution in #1901
- @isHuangXin made their first contribution in #1860
- @guojidan made their first contribution in #1841
Full Changelog: v2.6.0...v2.7.0-rc1