v0.17.0
Dragonfly v0.17.0
This is probably the last version before the 1.0 GA release.
- Multiple performance & stability improvements around transactions and lua scripts.
- helm scripts support password-based authentication
- Improve memory introspection tooling to be able to track memory usage in production easier
- Switched to dragonfly-specific snapshotting format (Dragonfly still supports saving/loading rdb files).
- Backport to Dragonfly lua functions that were deprecated after lua version 5.1 (getn, unpack)
- A new docs site was launched: https://dragonflydb.io/docs
- Dragonfly can now emulate cluster-mode by exposing itself as a single-shard cluster. See
cluster_mode
flag for more details. - Experimental support for SADDEX/HSETEX commands that allow setting a TTL on SET/HASH members. This solves a 8-year-old feature request existing in the Redis project: redis/redis#2905
Huge thanks to all the contributors! β€οΈ
What's Changed
- feat(server): replication should not evict items by @adiholden in #743
- feat(list): Add BLMove command by @romange in #753
- fix(regression-tests): sentinel_test.py: Ditch docker whcih is complex on CI in favour of local redis binary by @ashotland in #755
- feat(server): add latency statistics for lua script calls by @romange in #758
- bug(server): fix deadlock in BufferedStreamerBase notify all producers by @adiholden in #760
- bug(replication): BLPOP fix write to shard journal of popped key by @adiholden in #761
- feat(server): add total_connections_received statistics by @romange in #757
- bug(transaction): local result needs to be reset on InitByArgs Fixes β¦ by @adiholden in #762
- chore(server): track ooo transactions via metrics. by @romange in #763
- feat(server): Pool lua interpreters by @dranikpg in #765
- bug(replica): execute expire within multi command only if its belong β¦ by @adiholden in #766
- Update transaction and enable OOO for regular transactions by @dranikpg in #769
- feat(server): Extend malloc-stats command functionality. by @romange in #775
- feat(server): Async unlock multi by @dranikpg in #774
- feat(server): track pipeline requests cache capacity by @romange in #776
- Update README.md by @ashotland in #778
- test(server): adding unit tests for reply builder by @boazsade in #764
- fix(server): monitor lua at script execution by @boazsade in #767
- feat(server): add dfly replica offset command by @adiholden in #780
- feat(replica): add debug command - replica offset by @adiholden in #786
- fix(server): Fix transaction bug by @dranikpg in #787
- Refactor initialization phase of transaction by @dranikpg in #790
- fix(server): Fix bugs by @dranikpg in #797
- feat(server): Enable overriding --requirepass form env var by @ashotland in #792
- test(regression-tests): stop regression-tests schedual run by @adiholden in #795
- fix(replica) : replica will not sync execution multi shard commands as default by @adiholden in #800
- feat(facade): Limit request cache using runtime flag by @romange in #793
- update readme by @worldsoup in #794
- feat(server): save dragonfly snapshot in a new format by default by @romange in #802
- feat(server): write journal record with optional await based on flag⦠by @adiholden in #791
- fix(pytest): SAVE to SAVE RDB by @dranikpg in #803
- fix(pytest): fix periodic test by @dranikpg in #804
- fix(regression-tests): increase timeout of regression-tests by @adiholden in #806
- chore(server): reduce number of allocations with multi-exec commands by @romange in #807
- chore(regressions-tests): Update regression-tests.yml by @ashotland in #805
- tests(server): Add multi_test by @dranikpg in #810
- feat(core): Add Ttl semantics to string_map by @romange in #813
- feat(server): Check locks in heartbeat, allow multiple tx in replica by @dranikpg in #815
- feat(charts): Update helm chart to support password from secret by @ashotland in #799
- Fix(regression-tests): Sentinel test - wait for sentinel termination by @ashotland in #816
- Basic multi modes for MULTI/EXEC by @dranikpg in #796
- fix(zset): Make count optional for ZPOP{MIN,MAX} by @alisaifee in #821
- feat(server): add debug information about running transactions by @romange in #820
- EVAL multi modes + non atomic modes by @dranikpg in #818
- fix(regression-test): Sentinel test stabilization by @ashotland in #826
- bug(snapshot): Fix unwriten entries in multiple snapshotting Fixes #823 by @adiholden in #825
- docs: Add how to build dragonfly on Fedora by @romange in #822
- feat(tests): Add rotating master test by @dranikpg in #828
- fix(docs):attos -> dragonflydb by @ashotland in #830
- feat(server): add lru data structure by @romange in #831
- Update transaction.md by @dranikpg in #808
- feat(server): Add HSETEX command by @romange in #817
- docs(dashtable): Fix image URL for expiration by @Pothulapati in #870
- fix(server): JSON.RESP path arg should be optional (#852) by @iko1 in #865
- fix(server): Fix lua reply builder by @dranikpg in #871
- fix(helio): get helio fix in uring_socket by @adiholden in #827
- fix(server): Reorder ExecuteAsync callback seqlock check by @dranikpg in #873
- fix(server): fix JSON.ARRTRIM implementation (#844) by @iko1 in #864
- feat(tests): Script pytests by @dranikpg in #872
- bug(snapshot) : Do not preempt inside OnDbChange issue #829 by @adiholden in #868
- feat(db slice): add fiber atomic gaurd by @adiholden in #878
- feat(Docker) : add redis tools to docker by @adiholden in #877
- fix(server): Fix replication logs by @dranikpg in #883
- feat(chart): add golden file output rendering tests by @Pothulapati in #882
- fix(charts): Use
Release.Namespace
everywhere by @Pothulapati in #884 - feat: support cluster mode emulation by @lsvmello in #492
- test(helm): Add command to update golden files by @Pothulapati in #890
- fix: ci by @romange in #893
- feat(zset_family): support zscan match and count optional params issue by @adiholden in #891
- Support script configuration by @dranikpg in #889
- fix: resize buffer correctly when checking for http header line by @romange in #894
- Add basic replicaiton from redis test by @ashotland in #895
- bug(snapshot) : enforce order when pushing to channel when needed issue #879 by @adiholden in #886
- bug(replica): call add entry outside DCHECK by @adiholden in #896
- bug(list_family): fix BPopPusher command replication by @adiholden in #899
- feat(regression test) : add regression test that run in optimiztion mode by @adiholden in #900
- fix(server):Return an error, instead of crashing, for requests trying to rename a key to the same key. by @chakaz in #897
- fix(server): fix JSON.MGET implementation (#849) by @iko1 in #876
- chore(deps): Update outdated golang test dependencies by @Pothulapati in #904
- chore(server): pass coordinator thread to a transaction object by @romange in #905
- fix(server): Add deprecated/removed lua table functions by @dranikpg in #901
New Contributors
- @worldsoup made their first contribution in #794
- @Pothulapati made their first contribution in #870
- @chakaz made their first contribution in #897
Full Changelog: v0.15.0...v0.17.0