Releases: dragonflydb/dragonfly
v1.11.0
Dragonfly v1.11.0
🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱
Our beloved country is currently facing difficult times, but we will win, for hope and progress are on our side.
🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱 🇮🇱
Important features and changes:
- Starting from v1.11.0 we support the BullMQ framework. For more information see BullMQ post and our docs.
- Lots of ACL/Auth fixes. Specifically (IMPORTANT): we changed the default http user to be "default" instead of "user" to be consistent
with Dragonfly ACL rules. We also removed the requirement for authenticated access to/metrics
http page even if ACL are enabled. - STREAMS and ACL APIs are complete! Please let us know if you encounter any issues.
- Lots of performance improvements for Sorted Sets. Now Dragonfly uses our own b+tree implementation for sorted sets by default instead
of the old Redis skiplist implementation. We improved some memory and performance bottlenecks with listpack encoding as well. - Fix logrotate rules for our debian package.
What's Changed
- fix: Add missing encodings to strEncoding by @royjacobson in #1798
- fix: add maxmemory_policy item to info memory section by @romange in #1802
- Update Dockerfile.alpine-dev by @dranikpg in #1803
- chore: add macos daily build by @romange in #1795
- feat(search): sized vectors by @dranikpg in #1788
- fix: alpine weekly pipeline by @romange in #1811
- feat (hset): Support arguments (count, withvalues) in HRANDFIELD by @theyueli in #1804
- Remove ICU library by @dranikpg in #1812
- bug(server): multi cleanup on error by @adiholden in #1813
- chore(AclFamily): Move some of the regressions tests to unit and add by @kostasrim in #1816
- feat(stream): add support for xpending command by @Abhra303 in #1806
- chore(AclFamily): remove unused using decl from acl_family_test by @kostasrim in #1817
- feat(stream): add support for xclaim command by @Abhra303 in #1372
- docs: update README.zh-CN.md by @yancz2000 in #1772
- chore: partially revert adjust batching behavior to reduce network by @kostasrim in #1821
- feat(search): HNSW by @dranikpg in #1799
- fix: possible segfault bug by @romange in #1822
- fix(aws): initialise aws in a proactor by @andydunstall in #1818
- fix: Reply within async_dispatch block in squashed pipeline by @dranikpg in #1825
- Revert "chore: partially revert adjust batching behavior to reduce network" by @dranikpg in #1824
- feat(AclFamily): load/store aclfile by @kostasrim in #1820
- feat(snapshot): add snapshot storage by @andydunstall in #1827
- fix: regression tests for acl family test by @kostasrim in #1826
- fix(regression-tests): correct path for acl files by @kostasrim in #1829
- feat(CI): Configure sccache to work with GCS by @royjacobson in #1815
- Revert "feat(CI): Configure sccache to work with GCS" by @royjacobson in #1833
- skip test_multidim_knn by @adiholden in #1834
- fix(search-parser): fix AND, OR, NOT parsing issue by @Equilibrium2702 in #1838
- feat(snapshot): move load path to snapshot storage by @andydunstall in #1830
- fix(AclFamily): move acl test files to pytest by @kostasrim in #1843
- Add build_rpm script and rpm spec by @romange in #1831
- Support 'databases' alias for CONFIG GET by @romange in #1849
- chore(regression): send chat notificaiton only on main branch by @adiholden in #1847
- Fix a potential crash in OnBreakCb by @romange in #1850
- fix(tls): User friendly logging of OpenSSL errors by @royjacobson in #1851
- opt(lua): Coordinate single-shard Lua evals in remote thread by @chakaz in #1845
- feat(debug): Adds a DEBUG STACKTRACE subcommand by @royjacobson in #1848
- feat(server): Getting flags from the environment variables by @aidarbek in #1810
- feat(snapshot): add support for snapshot recovery from S3 by @andydunstall in #1839
- fix: dfly_main small typo on unix_socket flag by @kostasrim in #1853
- chore: enable search lib on Apple by @romange in #1854
- feat(tests): unset test DFLY env variables by @andydunstall in #1856
- feat(snapshot): fix build on macos by @andydunstall in #1861
- fix(ServerFamily): proper initialization of FileSnapshotStorage when replicaof flag is used by @kostasrim in #1858
- feat(AclFamily): add acl commands by @kostasrim in #1844
- Run unit tests in macos build by @romange in #1859
- fix: fix json.arrappend not allowing passing JSON objects by @UkuLoskit in #1867
- chore: build rpm package for the release by @romange in #1866
- fix(Auth): authenticate with any password for default user by @kostasrim in #1868
- tests: choose open ports randomally by @royjacobson in #1569
- chore: Fix regression test after #1569 by @royjacobson in #1872
- chore: Add a context manager to DflyInstance so we don't forget to close them. by @royjacobson in #1873
- feat(replication): Use a ring buffer with messages to serve replication. by @royjacobson in #1835
- fix: weekly build by @romange in #1871
- feat(AclFamily): add acl log by @kostasrim in #1865
- feat: Span-all no-key transactional commands by @dranikpg in #1864
- fix: Disable Int<> calls in cmd_arg_parser_test for MacOS by @dranikpg in #1880
- feat(AclFamily): add acl users command by @kostasrim in #1882
- feat(AclFamily): add acl cat command by @kostasrim in #1883
- feat(AclFamily): add acl getuser command by @kostasrim in #1884
- feat(AclFamily): add acl dryrun command by @kostasrim in #1894
- fix(regression-tests): increase waiting delay for df startup by @kostasrim in #1893
- fix: improve performance of listpack sorted sets by @romange in #1885
- chore: optimize BPTreeNode::BSearch by @romange in #1891
- chore: Introduce basic deadlock detector for tests by @romange in #1896
- fix: make blocking_controller_test being built on macos by @romange in #1903
- fix: Better error handling in search algorithm by @dranikpg in #1881
- bug(server): zadd wrong insert when non unique members by @adiholden in #1906
- run regression tests on CI by @adiholden in #1874
- fix(server): Flip tcp_nodelay to on by default by @royjacobson in #1910
- bug(server): global command stalls on server load with pipeline mode by @adiholden in #1909
- fix: avoid calling 'sink_->Write()' with an empty buffer by @romange in #1912
- doc(server): Copy important note from transactions doc to the code by @chakaz in #1913
- fix: Correctly persist vector indices by @dranikpg in #1905
- opt(server): Call
reserve()
with correct argument by @chakaz in #1914...
v1.10.0
Dragonfly v1.10.0
Maintenance release to address the linker dependency issue #1823 .
In addition, we introduced ACL config file support for those who want to preserve ACL settings between restarts.
Please check out the changelog below for additional bug fixes and stability improvements.
What's Changed
- fix: Add missing encodings to strEncoding by @royjacobson in #1798
- fix: add maxmemory_policy item to info memory section by @romange in #1802
- Update Dockerfile.alpine-dev by @dranikpg in #1803
- chore: add macos daily build by @romange in #1795
- feat(search): sized vectors by @dranikpg in #1788
- fix: alpine weekly pipeline by @romange in #1811
- feat (hset): Support arguments (count, withvalues) in HRANDFIELD by @theyueli in #1804
- Remove ICU library by @dranikpg in #1812
- bug(server): multi cleanup on error by @adiholden in #1813
- chore(AclFamily): Move some of the regressions tests to unit and add by @kostasrim in #1816
- feat(stream): add support for xpending command by @Abhra303 in #1806
- chore(AclFamily): remove unused using decl from acl_family_test by @kostasrim in #1817
- feat(stream): add support for xclaim command by @Abhra303 in #1372
- docs: update README.zh-CN.md by @yancz2000 in #1772
- chore: partially revert adjust batching behavior to reduce network by @kostasrim in #1821
- feat(search): HNSW by @dranikpg in #1799
- fix: possible segfault bug by @romange in #1822
- fix(aws): initialise aws in a proactor by @andydunstall in #1818
- fix: Reply within async_dispatch block in squashed pipeline by @dranikpg in #1825
- Revert "chore: partially revert adjust batching behavior to reduce network" by @dranikpg in #1824
- feat(AclFamily): load/store aclfile by @kostasrim in #1820
- feat(snapshot): add snapshot storage by @andydunstall in #1827
- fix: regression tests for acl family test by @kostasrim in #1826
- fix(regression-tests): correct path for acl files by @kostasrim in #1829
- feat(CI): Configure sccache to work with GCS by @royjacobson in #1815
- Revert "feat(CI): Configure sccache to work with GCS" by @royjacobson in #1833
- skip test_multidim_knn by @adiholden in #1834
- fix(search-parser): fix AND, OR, NOT parsing issue by @Equilibrium2702 in #1838
- feat(snapshot): move load path to snapshot storage by @andydunstall in #1830
New Contributors
- @yancz2000 made their first contribution in #1772
- @Equilibrium2702 made their first contribution in #1838
Huge thanks to all the contributors! ❤️
Slava Ukraini 🇺🇦
Full Changelog: v1.9.0...v1.10.0
v1.9.0
Dragonfly v1.9.0
This release includes a number of important stability and security fixes, as well as some features that have been requested by users for a long time:
- ACLs : starting from this release, you can now create multiple users in Dragonfly and control their access via acl categories. The following ACL sub-commands are now supported:
ACL SETUSER/DELUSER/WHOAMI/LIST
. Please note that ACLS are not persisted yet through process restarts. - Improved sorted-sets. We rolled out our experimental support for sorted sets (aka ZSET). They require 35% less memory and are more CPU efficient, especially for large sets. To try them now with
--use_zset_tree
. - Support for
CONFIG GET/SET
- now some runtime options can be changed without restarting the server (#1700). - The
maxclients
flag now prevents the number of client connections from growing indefinitely (#1496). - New flags
max_multi_bulk_len
andmax_client_iobuf_len
control the limits for large requests. The former controls how many elements can be sent via arrays (for commands like MSET, SADD etc). The latter controls maximum buffer size when accepting string blobs (#1771) . - HTTP endpoint authorization: now our HTTP endpoint is protected with the same token that is passed with
--requirepass=token
(#1792)
Once basic auth is set, one can access the http port viacurl -u user:token localhost:6379/
What's Changed
- feat(server): add oom guard by @adiholden in #1650
- fix(server): update denyoom flag for all commands by @adiholden in #1651
- test(server): Run all unit tests with
--force_epoll
by @chakaz in #1672 - chore: Refactor SortedMap by @romange in #1666
- fix(VersionMonitor): request to update on older version by @kostasrim in #1674
- feat(server): support config set for some flags by @adiholden in #1624
- opt(server): Execute lua on target shard, if it's 1 by @chakaz in #1639
- introduce
--replicaof
flag by @talbii in #1583 - test(server): test transaction locked keys by @adiholden in #1669
- chore: Connection fixes by @dranikpg in #1663
- fix: fix dchecks by @dranikpg in #1681
- chore: refactor a common code into a function by @romange in #1685
- fix(daily-builds): temporarily comment out bullmq tests by @Abhra303 in #1679
- opt(server): Run Lua on remote thread only if it's a different thread by @chakaz in #1684
- chore: get rid of cmdstats_map by @romange in #1687
- chore: move RdImpl functions together by @romange in #1694
- fix(ci): use auth mechanism with tls helm values by @Pothulapati in #1696
- feat(helm) - Enable configuring service type LoadBalancer with a Static IP by @mutiadavid in #1689
- chore: implemente User and UserRegistry classes by @kostasrim in #1693
- chore: several improvements around sorted map by @romange in #1699
- security: Fix the password hashing in UserRegistry. by @royjacobson in #1702
- fix: allow integer tokens in search queries by @dranikpg in #1701
- feat: Update search index on expiry by @dranikpg in #1697
- fix: MONITOR now works for multi transactions by @dranikpg in #1675
- feat: Pipeline squashing by @dranikpg in #1619
- fix: Fix squashing, pytest arg formatting by @dranikpg in #1712
- fix: fix batching during dispatch mode changes by @dranikpg in #1713
- feat: Support unicode strings in search by @dranikpg in #1698
- feat: json paths in search by @dranikpg in #1695
- feat: introduce partial DfImpl implementation for sorted_map by @romange in #1714
- feat: implement GetRange/GetLexRange for bptree. by @romange in #1715
- chore: add acl categories to all commands by @kostasrim in #1711
- fix: Add small timeout to monitor by @dranikpg in #1718
- replication: fix misleading log message about full sync by @royjacobson in #1717
- chore: clean up save by @dranikpg in #1709
- feat: implement DeleteRange functions in DfImpl by @romange in #1716
- tools: Hash defrag script by @dranikpg in #1723
- fix: Make restore accept ttl in ms by @dranikpg in #1724
- feat(AclFamilly): add acl list command by @kostasrim in #1722
- chore: Add a daily coverage run by @royjacobson in #1437
- chore: Mark slow pytests as 'slow' so they can be excluded. by @royjacobson in #1720
- fix: Correctly read container limits when running under k8s by @talbii in #1692
- fix(AclFamily): commands parsing and error handling by @kostasrim in #1726
- feat(AclFamily): add acl setuser command by @kostasrim in #1725
- feat: search index persistence by @dranikpg in #1721
- fix: add proper printing of sha256 passwords by @kostasrim in #1728
- chore(gh-workflows): add regression tests to release job by @kostasrim in #1665
- fix(ACL): Fix the iteration over categories loop in AclToString by @royjacobson in #1731
- chore: Split the build & test into 2 stages by @royjacobson in #1733
- fix: Fix inconsistency when deleting dash entries by @romange in #1734
- feat: Defragmentation for hash values by @dranikpg in #1727
- chore: add clear metric for the fragmentation waste by @romange in #1735
- fix: fix search test by @dranikpg in #1739
- chore: integrate sccache by @romange in #1738
- chore: cover zset over bptree implementation in the CI. by @romange in #1736
- feat(AclFamily): add AUTH for acl members by @kostasrim in #1732
- fix: fix index loading by @dranikpg in #1742
- fix: the bug where iobuf should be enlarged during the replication by @romange in #1744
- feat(server): support multi eval in lock ahead mode by @adiholden in #1662
- fix: extend CI running time by @romange in #1749
- fix: fix defrag stats by @dranikpg in #1740
- fix: fix memcache bugs by @romange in #1745
- feat(server): Support limiting the number of open connections. by @royjacobson in #1670
- fix: Run defrag on dbs > 0 as well by @dranikpg in #1737
- fix(server): rdb loader catch bad alloc by @adiholden in #1748
- docs: add
snapshot_cron
flag in README (English and zh-CN) by @Niennienzz in #1729 - fix: broken memcached error reporting by @kostasrim in #1741
- feat(search): named return values by @dranikpg in #1746
- bug(server): command stats show origin command name by @adiholden in #1761
- fix(replication): Handle errors instead of crashing. by @royjacobson in #1757
- fix: make Dragonfly compatible with older systems by @romange in #1755
- fix(server): service exit on rdb load fail by @adiholden in #1750
- feat: add validation of acl users by @kostasrim in #1743
- fix(zset): correct the wrong calculation of range.maxex by @theyueli in #1759
- chore: move rdb save related logic into auxillary file by @romange in https://github...
v1.8.0
Dragonfly v1.8.0
New Dragonfly release! It's a stability release.
1.7.x had a few regressions which are fixed in this release 🤞🏼.
Everyone who uses 1.7.x is advised to switch to 1.8.0
What's Changed
- fix(server): Do not crash on parse error by @chakaz in #1631
- chore: update helio by @kostasrim in #1634
- fix: remove empty hop for non-expiring transactions by @dranikpg in #1605
- Fix socket code in replication by @royjacobson in #1622
- feat(server): Add
--lock_on_hashtags
mode. by @chakaz in #1611 - fix: remove coordinator_index_ from tx & fix short circuit by @dranikpg in #1640
- feat: Add GetRank to bptree API by @romange in #1638
- feat: Fix rank for delete operations by @romange in #1644
- Add "DEBUG OBJHIST" by @romange in #1635
- hotfix: snapshot endless loop on exit. by @dor132 in #1647
- fix: Add selective non-atomic squash dispatch by @dranikpg in #1641
- feat: Use const ConnectionContext in VerifyCommand by @dranikpg in #1633
- fix(server): Increase default timeout by @chakaz in #1653
- feat: Use compressed sorted set for search by @dranikpg in #1648
- feat: add ScoreMap that maps sds strings to doubles by @romange in #1656
- feat: FtList, FtDropIndex and FtInfo by @dranikpg in #1649
- chore: Iterate over bptree_set. by @romange in #1654
- feat: Add LowerBound and DeleteRangeByRank by @romange in #1655
- fix(rdb_load): load listpack encoded zset by @kostasrim in #1646
- fix(pytest): Raise exception if instance.stop timed out by @dranikpg in #1660
- feat: Add DeleteByScore method by @romange in #1664
- chore: Save snapshots as
.tmp
first to avoid file corruption by @talbii in #1623 - feat: Refactor command verification before execution by @dranikpg in #1652
- chore: Add names to fibers that were missing them by @royjacobson in #1667
- chore: update helio by @romange in #1668
Full Changelog: v1.7.1...v1.8.0
v1.7.1
Dragonfly v1.7.1
New Dragonfly release! Prominent changes include:
- Partial GEO API support (GEOADD, GEOPOS, GEOHASH) (thanks @yoelsherwin )
- command duration metrics are now exported via Commandstats in INFO.
- Lots of improvements around TLS support.
- Dragonfly can now read RDB files by Redis 6 and Redis 7!
snapshot_cron
is added (#1590 ) - thanks @dor132
What's Changed
- fix: zunion and zunionstore zero numkeys bug by @rounaknandanwar in #1522
- Fix regression test failures. by @chakaz in #1529
- feat(stream): add support for xreadgroup command by @Abhra303 in #1475
- fix: add tls-ca-cert-file flag to allow tls certificate validation by @kostasrim in #1515
- fix(regression test): fix in takeover tests by @adiholden in #1530
- chore: update jsoncons dependency by @iko1 in #1066
- chore: simplify SendMonitor function by @romange in #1534
- feat: do not process lua script if sha exists in cache by @kostasrim in #1537
- chore: import geo related files to Dragonfly repo by @romange in #1540
- chore: refactor zset_family by @romange in #1542
- refactor(facade): Add includes for standard library headers. by @Cory-Kramer in #1538
- feat: implement two geo commands GEOADD/GEOHASH by @romange in #1543
- fix: weekly alpine build by @romange in #1555
- chore: Remove robj reference from zset_family by @romange in #1554
- chore: disable persistent journaling feature by @romange in #1549
- feat: Add black formatter to the project by @kostasrim in #1544
- chore: update ci action versions by @romange in #1557
- chore: eliminate futher robj references in zset_family code by @romange in #1556
- Refactor replication code by @royjacobson in #1507
- chore: introduce sorted_map by @romange in #1558
- Update README.md by @worldsoup in #1559
- feat(server):export role as Prometheus metric by @ashotland in #1560
- fix(server, metrics):gauge metric value can't be text by @ashotland in #1564
- chore: rename dfly_ metrics to dragonfly_ by @romange in #1568
- fix(rdb): Fix loading of small integers and remove code duplication by @royjacobson in #1571
- feat: add replication over tls by @kostasrim in #1525
- test(replication): add admin port replication tests by @kostasrim in #1561
- feat: introduce config set command by @romange in #1574
- chore: improve memory estimations by @romange in #1567
- bug(server): multi exec eval by @adiholden in #1541
- Fix(regression test): test_tls_replication by @adiholden in #1580
- Command duration by @talbii in #1552
- fix(VersionMonitor): improper version update to older version by @kostasrim in #1577
- docs: Add openSUSE dependencies installation instructions by @binjamil in #1585
- Fix(server): command duration metrics by @adiholden in #1587
- feat(github-actions): add bullmq tests in daily builds by @Abhra303 in #1511
- chore(VersionMonitor): replace std::vector with absl::InlinedVector by @kostasrim in #1589
- feat: add support for GeoPos command by @yoelsherwin in #1576
- Update README.zh-CN.md by @byronhe in #1573
- refactor(VersionMonitor): improve readability and add proper RAII to ssl_ctx by @kostasrim in #1578
- Remove the option to start TLS without any server certificate. by @royjacobson in #1562
- feat: complete GEOADD functionalities (options + multiple parameters) by @yoelsherwin in #1592
- chore(rdb): support rdb version 11 by @kostasrim in #1579
- feat: support for GEODIST added by @yoelsherwin in #1594
- sec: Adjust flag validation for TLS. by @royjacobson in #1582
- Use mimalloc with Lua. by @chakaz in #1600
- fix: Fix faulty logic that forces multi transactions to run as global by @romange in #1598
- Fix(regression test): fix test_flushall_in_full_sync by @adiholden in #1597
- tests: Add a password to TLS configurations by @royjacobson in #1603
- opt(server): Short-circuit ExecuteAsync(). by @chakaz in #1601
- feat: very minimal code that adds b-tree to the codebase by @romange in #1596
- feat(server): Use hashtags for sharding in emulated cluster mode. by @chakaz in #1602
- fix: fix multi test by @dranikpg in #1604
- bug(server): multi atomicity fix by @adiholden in #1593
- fix: add Transaction::Conclude by @dranikpg in #1606
- Add delete functionality to the b+tree by @romange in #1607
- fix: refactor RunCbOnFirstNonEmptyBlocking by @dranikpg in #1608
- feat: support for cron expressions based snapshot. by @dor132 in #1599
- fix: simplify ScheduleInShard by @dranikpg in #1610
- fix(test): Fix failing tests. by @chakaz in #1612
- feat: Remove batch locks from non-atomic squashing by @dranikpg in #1613
- feat: support for cron expressions based snapshot (update). by @dor132 in #1620
- chore: disable multi-squashing by @romange in #1627
- chore: update helio by @kostasrim in #1626
New Contributors
- @rounaknandanwar made their first contribution in #1522
- @Cory-Kramer made their first contribution in #1538
- @binjamil made their first contribution in #1585
- @yoelsherwin made their first contribution in #1576
- @byronhe made their first contribution in #1573
- @dor132 made their first contribution in #1599
Huge thanks to all the contributors! ❤️
Full Changelog: v1.6.0...v1.7.1
v1.7.0
Dragonfly v1.7.0
New Dragonfly release! Prominent changes include:
- Partial GEO API support (GEOADD, GEOPOS, GEOHASH) (thanks @yoelsherwin )
- command duration metrics are now exported via Commandstats in INFO.
- Lots of improvements around TLS support.
- Dragonfly can now read RDB files by Redis 6 and Redis 7!
What's Changed
- fix: zunion and zunionstore zero numkeys bug by @rounaknandanwar in #1522
- Fix regression test failures. by @chakaz in #1529
- feat(stream): add support for xreadgroup command by @Abhra303 in #1475
- fix: add tls-ca-cert-file flag to allow tls certificate validation by @kostasrim in #1515
- fix(regression test): fix in takeover tests by @adiholden in #1530
- chore: update jsoncons dependency by @iko1 in #1066
- chore: simplify SendMonitor function by @romange in #1534
- feat: do not process lua script if sha exists in cache by @kostasrim in #1537
- chore: import geo related files to Dragonfly repo by @romange in #1540
- chore: refactor zset_family by @romange in #1542
- refactor(facade): Add includes for standard library headers. by @Cory-Kramer in #1538
- feat: implement two geo commands GEOADD/GEOHASH by @romange in #1543
- fix: weekly alpine build by @romange in #1555
- chore: Remove robj reference from zset_family by @romange in #1554
- chore: disable persistent journaling feature by @romange in #1549
- feat: Add black formatter to the project by @kostasrim in #1544
- chore: update ci action versions by @romange in #1557
- chore: eliminate futher robj references in zset_family code by @romange in #1556
- Refactor replication code by @royjacobson in #1507
- chore: introduce sorted_map by @romange in #1558
- Update README.md by @worldsoup in #1559
- feat(server):export role as Prometheus metric by @ashotland in #1560
- fix(server, metrics):gauge metric value can't be text by @ashotland in #1564
- chore: rename dfly_ metrics to dragonfly_ by @romange in #1568
- fix(rdb): Fix loading of small integers and remove code duplication by @royjacobson in #1571
- feat: add replication over tls by @kostasrim in #1525
- test(replication): add admin port replication tests by @kostasrim in #1561
- feat: introduce config set command by @romange in #1574
- chore: improve memory estimations by @romange in #1567
- bug(server): multi exec eval by @adiholden in #1541
- Fix(regression test): test_tls_replication by @adiholden in #1580
- Command duration by @talbii in #1552
- fix(VersionMonitor): improper version update to older version by @kostasrim in #1577
- docs: Add openSUSE dependencies installation instructions by @binjamil in #1585
- Fix(server): command duration metrics by @adiholden in #1587
- feat(github-actions): add bullmq tests in daily builds by @Abhra303 in #1511
- chore(VersionMonitor): replace std::vector with absl::InlinedVector by @kostasrim in #1589
- feat: add support for GeoPos command by @yoelsherwin in #1576
- Update README.zh-CN.md by @byronhe in #1573
- refactor(VersionMonitor): improve readability and add proper RAII to ssl_ctx by @kostasrim in #1578
- Remove the option to start TLS without any server certificate. by @royjacobson in #1562
- feat: complete GEOADD functionalities (options + multiple parameters) by @yoelsherwin in #1592
- chore(rdb): support rdb version 11 by @kostasrim in #1579
- feat: support for GEODIST added by @yoelsherwin in #1594
- sec: Adjust flag validation for TLS. by @royjacobson in #1582
- Use mimalloc with Lua. by @chakaz in #1600
- fix: Fix faulty logic that forces multi transactions to run as global by @romange in #1598
- Fix(regression test): fix test_flushall_in_full_sync by @adiholden in #1597
- tests: Add a password to TLS configurations by @royjacobson in #1603
- opt(server): Short-circuit ExecuteAsync(). by @chakaz in #1601
- feat: very minimal code that adds b-tree to the codebase by @romange in #1596
- feat(server): Use hashtags for sharding in emulated cluster mode. by @chakaz in #1602
- fix: fix multi test by @dranikpg in #1604
- bug(server): multi atomicity fix by @adiholden in #1593
- fix: add Transaction::Conclude by @dranikpg in #1606
- Add delete functionality to the b+tree by @romange in #1607
- fix: refactor RunCbOnFirstNonEmptyBlocking by @dranikpg in #1608
New Contributors
- @rounaknandanwar made their first contribution in #1522
- @Cory-Kramer made their first contribution in #1538
- @binjamil made their first contribution in #1585
- @yoelsherwin made their first contribution in #1576
- @byronhe made their first contribution in #1573
Huge thanks to all the contributors! ❤️
Full Changelog: v1.6.0...v1.7.0
v1.6.2
Fixed #1570
Full Changelog: v1.6.1...v1.6.2
v1.6.1
v1.6.0
Dragonfly v1.6.0
New Dragonfly release! Prominent changes include:
- Support for s390x (Thanks, @iko1 )
- Fixing stability issues in the transactional framework around blocking operations (thanks to @glitch user on Discord for helping to pinpoint the issues)
- Support plain replication on the admin port with TLS enabled on the primary port (#1490 )
- Support custom permissioning on UNIX domain sockets (#1415)
- Fix a deadlock when performing the replication over the admin port (#1470)
- Atomic replica failover support.
What's Changed
- feat: add s390x architecture support by @iko1 in #1214
- feat(CI): Update weekly build image name to be
dragonfly-weekly
by @Pothulapati in #1384 - fix(docker-release): Run Docker test only if image is built by @Pothulapati in #1430
- feat(cluster): Implement
CLUSTER KEYSLOT
command by @chakaz in #1413 - fix(cluster): Fix race when setting cluster config by @chakaz in #1428
- fix: out of bounds typo by @romange in #1434
- chore: improve connection I/O errors reporting by @romange in #1436
- test(cluster): Extend cluster_mgr.py by @chakaz in #1426
- feat(server): set allowed key size 256MB by @adiholden in #1435
- feat: Implement KNN interface by @dranikpg in #1412
- fix: add numpy to regtests (needed for knn) by @dranikpg in #1454
- fix: call NotifyPending only from tx queue invocations by @dranikpg in #1439
- feat(server): add flag to set FiberQueueThreadPool thread size by @wayslog in #1452
- feat(server): add unixsocketperm support by @adiholden in #1450
- feat(server): Add missing fields to INFO PERSISTENCE command (#1408) by @kostasrim in #1438
- feat(regression github): send failed tests names to chat by @adiholden in #1459
- fix: rename memcache to memcacheD by @dranikpg in #1461
- Expose replication lag metrics by @royjacobson in #1400
- fix: failing assertion on snapshot regression tests when dbfly instance shuts down by @kostasrim in #1463
- fix: support json v1 dot path by @dranikpg in #1462
- feat(log): On startup print info to stdout by @kostasrim in #1448
- fix(server): Fix early reply from
DEBUG POPULATE
by @chakaz in #1441 - feat(debian): retain debug symbols in deb package by @Pothulapati in #1464
- fix: avoid using main_listener when migrating connections by @romange in #1471
- fix: Don't calculate replication lags when replica is not in stable sync by @royjacobson in #1472
- fix(regression): fix json report filename by @adiholden in #1465
- fix(regression): failing info persistence on snapshot pytests by @kostasrim in #1473
- docs: update contributing.md with style guidelines by @kostasrim in #1467
- bug(cluster): fix crush on flush slots with shutdown by @adiholden in #1477
- fix: Increase the duration of the seeding in test_replication_info. by @royjacobson in #1479
- feat(github regression): add link to github job by @adiholden in #1482
- cleanups: Remove unused member, rename test, remove unused forward decl. by @chakaz in #1483
- fix(cluster): Fix
CROSSSLOTS
error with multi-key operations by @chakaz in #1488 - feat(cluster): Send flush slots cmd from masters to replicas. by @chakaz in #1484
- feat(server): support command rename by @adiholden in #1489
- Add Japanese README by @eltociear in #1494
- fix: misspelled replication on pytest redis_replication by @kostasrim in #1501
- fix(regression): remove test case for info persistence by @kostasrim in #1492
- feat: global eval in exec by @dranikpg in #1443
- feat: compressed list by @dranikpg in #1474
- fix: disable prohibited eval in multi test by @dranikpg in #1505
- fix(server): Initialize ServerFamily with all listeners. by @royjacobson in #1485
- fix: avoid crashing dragonfly on parsing error of cgroups config by @romange in #1503
- feat: Support atomic replica takeover by @royjacobson in #1314
- chore: tune snyk coverage to ignore test files by @romange in #1509
- Fix a bug and add a timeout test for takeover. by @royjacobson in #1512
- fix: null deref in debug log by @royjacobson in #1513
- chore: refresh helio by @romange in #1506
- docs : add korean translated README by @brewagebear in #1518
- fix(server): fix prints to log by @adiholden in #1520
- takeover: Cancel blocking commands by @royjacobson in #1514
- feat(replication): allow non-tls connections between replica and master #1419 by @kostasrim in #1490
- Fix regression test failures on old Python versions by @royjacobson in #1521
- fix: add missing slash on startup for certain log_dir paths by @kostasrim in #1500
New Contributors
- @wayslog made their first contribution in #1452
- @brewagebear made their first contribution in #1518
Huge thanks to all the contributors! ❤️
Full Changelog: v1.4.0...v1.6.0
v1.5.0
What's Changed
- feat: add s390x architecture support by @iko1 in #1214
- feat(CI): Update weekly build image name to be
dragonfly-weekly
by @Pothulapati in #1384 - fix(docker-release): Run Docker test only if image is built by @Pothulapati in #1430
- feat(cluster): Implement
CLUSTER KEYSLOT
command by @chakaz in #1413 - fix(cluster): Fix race when setting cluster config by @chakaz in #1428
- fix: out of bounds typo by @romange in #1434
- chore: improve connection I/O errors reporting by @romange in #1436
- test(cluster): Extend cluster_mgr.py by @chakaz in #1426
- feat(server): set allowed key size 256MB by @adiholden in #1435
- feat: Implement KNN interface by @dranikpg in #1412
- fix: add numpy to regtests (needed for knn) by @dranikpg in #1454
- fix: call NotifyPending only from tx queue invocations by @dranikpg in #1439
- feat(server): add flag to set FiberQueueThreadPool thread size by @wayslog in #1452
- feat(server): add unixsocketperm support by @adiholden in #1450
- feat(server): Add missing fields to INFO PERSISTENCE command (#1408) by @kostasrim in #1438
- feat(regression github): send failed tests names to chat by @adiholden in #1459
- fix: rename memcache to memcacheD by @dranikpg in #1461
- Expose replication lag metrics by @royjacobson in #1400
- fix: failing assertion on snapshot regression tests when dbfly instance shuts down by @kostasrim in #1463
- fix: support json v1 dot path by @dranikpg in #1462
- feat(log): On startup print info to stdout by @kostasrim in #1448
- fix(server): Fix early reply from
DEBUG POPULATE
by @chakaz in #1441 - feat(debian): retain debug symbols in deb package by @Pothulapati in #1464
- fix: avoid using main_listener when migrating connections by @romange in #1471
- fix: Don't calculate replication lags when replica is not in stable sync by @royjacobson in #1472
- fix(regression): fix json report filename by @adiholden in #1465
- fix(regression): failing info persistence on snapshot pytests by @kostasrim in #1473
- docs: update contributing.md with style guidelines by @kostasrim in #1467
- bug(cluster): fix crush on flush slots with shutdown by @adiholden in #1477
- fix: Increase the duration of the seeding in test_replication_info. by @royjacobson in #1479
- feat(github regression): add link to github job by @adiholden in #1482
- cleanups: Remove unused member, rename test, remove unused forward decl. by @chakaz in #1483
- fix(cluster): Fix
CROSSSLOTS
error with multi-key operations by @chakaz in #1488 - feat(cluster): Send flush slots cmd from masters to replicas. by @chakaz in #1484
- feat(server): support command rename by @adiholden in #1489
- Add Japanese README by @eltociear in #1494
- fix: misspelled replication on pytest redis_replication by @kostasrim in #1501
- fix(regression): remove test case for info persistence by @kostasrim in #1492
- feat: global eval in exec by @dranikpg in #1443
- feat: compressed list by @dranikpg in #1474
- fix: disable prohibited eval in multi test by @dranikpg in #1505
- fix(server): Initialize ServerFamily with all listeners. by @royjacobson in #1485
- fix: avoid crashing dragonfly on parsing error of cgroups config by @romange in #1503
- feat: Support atomic replica takeover by @royjacobson in #1314
- chore: tune snyk coverage to ignore test files by @romange in #1509
New Contributors
Full Changelog: v1.4.0...v1.5.0