Releases: dragonflydb/dragonfly
Release list
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_modeflag 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.Namespaceeverywhere 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 https://github.com/dragonflydb/...
v0.16.0
Dragonfly v0.16.0
It's a minor release with the following changes:
- Multiple performance & stability improvements around transactions and lua scripts
- Improve memory introspection tooling to be able to track memory usage easier in production
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
Full Changelog: v0.15.0...v0.16.0
v0.15.0
Dragonfly v0.15.0
Some prominent changes:
- Dragonfly is now compatible with redis-sentinel, allowing to support H/A setups.
- Debian package support for both x86_64 and aarch64.
- Quite a few lua fixes - now Dragonfly works well with laravel
framework - thanks to @fannyfan414 ! cl.throttleis now part of Dragonfly API - thanks to
@zetanumbers! See https://github.com/brandur/redis-cell/ for more
info about the API- Added support for ZUNION and BRPOPLPUSH
Huge thanks to all the contributors! โค๏ธ
What's Changed
- feat(server): report slaves ip and listening port in INFO REPLICATION by @ashotland in #715
- fix(server): Fix Lua & Zset issue by @dranikpg in #716
- fix(server): zunion now supports variadic arguments by @romange in #717
- docs(readme): Add ulimit to docker-compose example by @fannyfan414 in #721
- test(replica): test journal rewrite with multi shards by @adiholden in #720
- fix(server): Fix multi tx cleanup by @dranikpg in #723
- feat(action): build debian package for arm64 arch by @boazsade in #719
- feat(string family): implement
cl.throttleby @zetanumbers in #714 - fix: a small warning fix. by @romange in #724
- feat(server): Allow admin commands in multi by @ashotland in #722
- fix(lua): Fix a deadlock happenning when calling a lua script by @romange in #726
- Stop ping dev version by @romange in #727
- chore(ci):Reduce --gtest_repeat to 10 by @ashotland in #730
- feat(test): Sentinel Integration Test by @ashotland in #728
- chore(tests): Sentinel test PR code review followup by @ashotland in #731
- test(replication test): increase sleep time in full sync step by @adiholden in #733
- test(regression test): run regression tests on github actions every 6โฆ by @adiholden in #734
- feat(server): Auto expiry + small replica refactor by @dranikpg in #718
- Add -x to pytest invocation by @ashotland in #735
- fix(sentinel_test):Remove return type which breaks regression tests by @ashotland in #736
- feat(action): build debian package for arm64 arch (#719) by @boazsade in #738
- Add renderer to grafana by @romange in #739
- feat(list family): support blocking command for replication by @adiholden in #740
- test(replication test): check data only after replica finished execution by @adiholden in #746
- feat(server): Print time it took to perform full sync by @dranikpg in #747
- fix(server): Reset interpreter stack on errors by @dranikpg in #745
- fix(regression-tests):Skip sentinel regression tests by @ashotland in #748
- Notify on cancelled too by @ashotland in #749
- Exclude single threaded test now that expiry is tested by @dranikpg in #750
New Contributors
- @fannyfan414 made their first contribution in #721
- @zetanumbers made their first contribution in #714
Full Changelog: v0.14.0...v0.15.0
v0.14.0
Dragonfly v0.14.0
Some prominent features and fixes.
- Fixed a bug that caused linker incompatibility on some Linux distributions.
- Release of a Debian package (currently only for x86_64 architectures) - now it's much easier to install Dragonfly as a service on a linux machine.
http_admin_consoleflag is renamed toprimary_port_http_enabled. This controls whether--portaccepts http requests as well. Also, we added new flags likeadmin_portandadmin_bindto listen on an additional port. Please note thatadmin_portalways exposes the HTTP interface #709- Replication is almost ready - one can set up a master/slave setup with a usual "replicaof" command on a secondary replica (FAILOVER is not supported yet)
Huge thanks to all the contributors! โค๏ธ
What's Changed
- feat(server): Add metrics by @ashotland in #638
- feat(replica): support multi transaction command by @adiholden in #634
- feat(chart): add feature to generate/request TLS certificate through cert-manager by @tamcore in #644
- feat(container): make healthcheck tls compatible by @tamcore in #643
- Update README.md by @yingshaoxo in #633
- feat(tools): Add Zipfian cache testing tool by @devangjhabakh in #640
- fix(lua): fix a bug that truncates the last lua argument. by @romange in #652
- chore(server): snapshot stats fix by @romange in #653
- feat(replica): support multi shard commands new flow by @adiholden in #645
- feat(helio): pull blocking counter fix by @adiholden in #655
- fix(server): Fix bug in flushing in snapshot by @dranikpg in #654
- fix(server): Fix db initialization in stable state by @dranikpg in #658
- fix(server): Flush dbs before full sync by @dranikpg in #659
- feat(server family): reject flushall and flushdb on multi command by @adiholden in #657
- feat(replica): enable multi cmd sync on flag by @adiholden in #656
- bug(replica): multi command on single shard exec all commands by @adiholden in #661
- Pytests overhaul by @dranikpg in #569
- fix(build): verify build image for releases by @boazsade in #664
- feat(server family): impl ROLE command by @adiholden in #660
- feat(server): implement BRPOPLPUSH command by @romange in #671
- bug(snapshot): on journal write entry with opcode COMMAND and MULTI_Cโฆ by @adiholden in #662
- fix(server): Fix shutdown order by @dranikpg in #675
- feat(server): Json rdb support by @dranikpg in #674
- fix(server): Fix a bug with brpoplpush by @romange in #677
- fix(tests): Small pytest fixes by @dranikpg in #673
- fix(server): Fix replication on a single thread by @dranikpg in #676
- test(replication_test) : add replica flushall test by @adiholden in #669
- test(rdb): Add json dump & restore test by @dranikpg in #678
- feat(server): Buffered streamer + use on stable state by @dranikpg in #639
- fix(core): Fix compact object bug by @dranikpg in #680
- fix(test): reduce flakiness of tiered_storage_test by @romange in #684
- chore(facade): speed up request allocation in pipeline mode by @romange in #682
- fix(server): fix the bug where DF went over maxmemory limit by @romange in #683
- feat(server): Rewrite journal commands (basic) by @dranikpg in #651
- fix(server): Convert Heartbeat from a periodic task to a fiber by @ashotland in #690
- feat(build): debian package building by @boazsade in #689
- fix(server): Fix connection bug by @dranikpg in #695
- feat(set family): rewrite set store commands to journal by @adiholden in #691
- feat(zset family): implement a variant of ZUNION command issue #356 by @adiholden in #686
- Refactor transaction by @dranikpg in #697
- feat(actions): add support for debian packaging by @boazsade in #696
- (generic family): journal support rename command by @adiholden in #698
- feat(actions): add support for Debian packaging - add missing dependency by @boazsade in #701
- feat(transaction): simplify calc multi trans unique shard count by @adiholden in #672
- feat(build): debian package building fix dependency bug by @boazsade in #702
- feat(server): Journal rewrite p2 + tests by @dranikpg in #699
- (generic family): journal support move command by @adiholden in #708
- feat(list family): impl rename journal commands by @adiholden in #704
- fix(server): fix getex command with persist can get time overflow by @boazsade in #707
- feat(server): admin port and interface by @boazsade in #709
New Contributors
- @yingshaoxo made their first contribution in #633
- @devangjhabakh made their first contribution in #640
Full Changelog: v0.13.1...v0.14.0
v0.13.1
Dragonfly v0.13.1
Minor bugfix
Don't miss the previous v0.13.0 Highlights:
The first release of the year! Yey!
This release contains a few exciting features.
- Active defrag: any long-running process with non-trivial allocation patterns suffers from excessive memory usage due to external fragmentation. This release uses an improved defragmentation algorithm after we released the initial version in the previous version.
- Experimental SSD-based data-tiering support. Dragonfly is the only in-memory store that provides data tiering that is faster than other memory-only stores. (Currently only for strings). Try it with flag --spill_file_prefix=<nvme_file_basepath>
- JSON - this release compliments the already existing JSON API with support for SCAN and TYPE working with JSON data types.
- Replication (still not for prod use) but can already be tried on simple single key commands like SET, SADD, ZADD, LPUSH etc.
- Writes and reads of large string values are optimized for x86 architectures with SIMD instructions.
- Numerous improvements to helm templates, plus docker health checks - thanks to @tamcore !
What's Changed
- Update README.md by @brunopicinin in #631
- fix(server): version check bugs by @romange in #632
New Contributors
- @brunopicinin made their first contribution in #631
Full Changelog: v0.13.0...v0.13.1
v0.13.0
Dragonfly v0.13.0
The first release of the year! Yey! ๐ฏ
This release contains a few exciting features.
- Active defrag: any long-running process with non-trivial allocation patterns suffers from excessive memory usage due to external fragmentation. This release uses an improved defragmentation algorithm after we released the initial version in the previous version.
- Experimental SSD-based data-tiering support. Dragonfly is the only in-memory store that provides data tiering that is faster than other memory-only stores. (Currently only for strings). Try it with flag
--spill_file_prefix=<nvme_file_basepath> - JSON - this release compliments the already existing JSON API with support for SCAN and TYPE working with JSON data types.
- Replication (still not for prod use) but can already be tried on simple single key commands like SET, SADD, ZADD, LPUSH etc.
- Writes and reads of large string values are optimized for x86 architectures with SIMD instructions.
- Numerous improvements to helm templates, plus docker health checks - thanks to @tamcore !
Huge thanks to all the contributors! โค๏ธ
What's Changed
- feat(rdb save): Create compressor interface by @adiholden in #538
- fix(helm): Chart.yaml - Add home, keywords, sources, kubeVersion by @arukiidou in #542
- feat: add healtcheck for container by @tamcore in #544
- Support lz4 compression by @adiholden in #545
- feat(server): json set type support by @boazsade in #546
- chore: Update helio dependency by @romange in #553
- chore: Update helio dependency by @dranikpg in #555
- feat(server): Implement robust error & cancellation on replica by @dranikpg in #531
- feat(ci test): add build and test on release mode by @adiholden in #556
- added example of start script by @Tomato6966 in #557
- Support offloading of blobs longer than 2KB by @romange in #559
- feat(server): active memory defrag test application by @boazsade in #552
- feat(server): JSON family using JSON type by @boazsade in #561
- feat(server): New auto-journal types/read/write by @dranikpg in #560
- chore: Refactor RdbLoad by @romange in #564
- chore: Adding a mpsc intrusive queue based on Vyukov's design by @romange in #562
- feat: introduce simd algorithm for bitpacking by @romange in #568
- feat: implement ascii_unpack using SIMD instructions by @romange in #573
- bug(rdb load): Rdb loader tasks stop running on failure #567 by @adiholden in #576
- chore: Improve the implementation of simd based packing by @romange in #577
- fix: choose an appropriate SIMD implementation for aarch64 by @romange in #579
- fix: handle corner case when comitted memory is negative by @romange in #570
- feat(server): Use new journal format by @dranikpg in #563
- fix(chart): probe indentation by @tamcore in #590
- feat(server): Redesign and simplify tiered storage module. by @romange in #589
- use dense_set for hashmap family by @romange in #593
- feat(server): adding version monitoring task by @boazsade in #586
- feat(replica): Support FlushDB command for replication #580 by @adiholden in #591
- fix(server): defrag unit test fix by @boazsade in #602
- chore(server): upgrade mimalloc for v2.0.7 by @boazsade in #597
- feat: build and publish weekly alpha/development container image by @tamcore in #594
- life of a transaction by @romange in #278
- feat(server): track hits and misses stats. by @ashotland in #608
- feat(server): Improved cancellation by @dranikpg in #599
- feat(replica): atomicity for multi shard commands by @adiholden in #598
- fix(server):set of existing object with expiry by @ashotland in #609
- chore: Add tiered_storage_test. by @romange in #613
- feat(tools):Cache logs player by @ashotland in #614
- fix(tools): cache logs player handle append as redis append by @ashotland in #615
- docs(quickstart): Clarify docker command for macOS by @pjambet in #612
- feat(tools):cache log player batching all the way optimisation by @ashotland in #617
- feat(ci test): add testing for helm chart by @tamcore in #622
- chore: overhaul chart by @tamcore in #620
- Cache logs player - add one last stats print after completion by @ashotland in #623
- feat(server): Buffered journal serializers by @dranikpg in #619
- feat(server): Update helio, optimize and clean up rdb/snapshot by @dranikpg in #625
- fix(server): only print version if successfully connect. by @boazsade in #628
- feat(server): using memory defrag with per shard mem info by @boazsade in #616
New Contributors
- @arukiidou made their first contribution in #542
- @ashotland made their first contribution in #608
- @pjambet made their first contribution in #612
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Dragonfly v0.12.0
This release is mainly about bug fixes and extending our codebase to support replication.
- Dragonfly can now connect as a replica behind Redis master (supports REPLICAOF command)
- Dragonfly can now connect to another Dragonfly instance to form DF->DF replication. This feature is not fully implemented yet but
it performs the first part, namely "full sync stage". Now we are working on "stable state replication". - Dragonfly now supports the active-defrag feature. See #448 for more details.
Huge thanks to all the contributors! โค๏ธ
What's Changed
- chore: Rename DoFlush to Drakaris. by @romange in #489
- feat: Add last_save_duration_sec metric by @romange in #493
- fix(server): Handle data directory errors by @dranikpg in #494
- fix: Fix bugs around rdb save and improve memory accounting by @romange in #495
- A dedicated github actions pipeline that build dragonfly and runs pytโฆ by @zNNiz in #490
- fix(test): skip pytest test_simple_full_sync_mutli_crash due to crash by @boazsade in #497
- fix(server): Fix db_slice insertion bug with callbacks by @dranikpg in #499
- feat(actions): push helm chart as OCI image by @tamcore in #500
- feat(server): Switch to stable state replication by @dranikpg in #473
- feat(io): pull new helio dependency by @adiholden in #506
- fix(server): all scan commands needs to return cursor as bulk string #503 by @boazsade in #504
- fix(server): Fix lambda capture in RunInParallel functions by @dranikpg in #507
- fix: clang warnings. by @romange in #508
- feat(server): Replication errors & cancellation by @dranikpg in #501
- fix(server): Increase common abstraction usage by @dranikpg in #511
- feat(server): implement json.set command (#104) by @iko1 in #514
- chore: tiered_storage - cleanups and refactorings. by @romange in #515
- fix(server): Fix replication bug, add gdb opt to pytest by @dranikpg in #513
- bug(server): exit not crash when port in use by @adiholden in #516
- feat(rdb save): add blob compression on snapshot by @adiholden in #505
- feat(rdb save): add unit test to save df with all compression levels by @adiholden in #517
- feat(rdb save): serializer flush to sink only on flush call by @adiholden in #519
- fix: Use dev image for running regression test by @romange in #522
- feat(regression test): add timeout cpu info and inc frequecy by @adiholden in #524
- bug(rdb loader): When reading from zstd uncompressed buf skip ensure โฆ by @adiholden in #525
- refactor(server): Refactor snapshot by @dranikpg in #520
- chore: Add lz4 to the source dependency by @romange in #528
- feat(server): memory defrag support - unit tests added to verify #448 by @boazsade in #523
- bug(debug cmd): debug populate support random value population by @adiholden in #527
- bug(rdb save): snapshot: on push data to channel check serializer len by @adiholden in #532
- feat: add defrag support for small strings by @romange in #534
- feat(server): adding matrices for memory defrag by @boazsade in #535
- feat(rdb save): refactor move zstd serializer under rdb serializer by @adiholden in #533
- feat(server): defrag memory counter for total memory access by @boazsade in #537
- feat(rdb save): add Lz4Compressor by @adiholden in #536
- fix(github): add libzstd-dev dep to aarch64 release pipeline by @romange in #539
New Contributors
Full Changelog: v0.11.0...v0.12.0
v0.11.0
Dragonfly v0.11.0 - Thanksgiving edition
Some prominent changes:
- You can now pass
--maxmemory=16Gflag instead of passing raw bytes. - The monitor command is implemented; it's also much faster than in Redis.
- The missing options in existing commands were added. Amazing work by our contributors!
- Significant progress was made with the replication. Still, lots needs to be done in this area. Expected release for this feature - Q1 23.
Huge thanks to all the contributors! โค๏ธ
What's Changed
- feat(server): sending and dispatching of messages using different internals by @boazsade in #424
- ci(workflow): fixing discord notification link by @ranrib in #419
- feat(server): Allow sampling arena stats from a specified thread by @romange in #428
- Monitor command by @boazsade in #427
- feat(server): Multi rdb load by @dranikpg in #430
- refactor(server): Refactor and tidy dflycmd by @dranikpg in #432
- feat(server): monitor command should return OK on creation (#344) by @boazsade in #433
- refactor(server): Separate start & stop in rdb save by @dranikpg in #437
- fix: dragonfly compilation failure due to glibc version less than 2.30 by @Super-long in #434
- feat(server): monitor command - cover by tests by @boazsade in #435
- fix: "wrong number of arguments" must be in lower case by @lsvmello in #439
- refactor(tests): Refactor pytest by @dranikpg in #449
- docs(build): Canonicalize build from source instructions. Add CLA terms by @romange in #454
- feat(server): implement TOUCH command by @lsvmello in #444
- feat(server): implement json.mget command (#104) by @iko1 in #455
- feat(server): Support for LIMIT and REV in ZRANGE #422 by @RedhaL in #456
- fix(list): Fixes blpop failure. by @romange in #462
- ci: added clang pre-commit hook by @lsvmello in #461
- feat(tests): ioredis being able to successfully run tests, make it ready to be part of CI by @boazsade in #459
- feat(server): Basic capped full sync by @dranikpg in #440
- feat(server) implement pexpire command by @b0bleet in #464
- server: implemented json.arrappend command by @b0bleet in #460
- feat(server): simplify handling of the pub message handling by @boazsade in #465
- refactor(server): Refactor replica by @dranikpg in #472
- fix(server): reject eval inside transaction multi blocks #457 by @boazsade in #471
- feat(server): implement json.debug command (#104) by @iko1 in #463
- fix(server): issue with invalid command inside multi #468 by @boazsade in #469
- SSCAN command support count and match parameters by @adiholden in #466
- bug(dense set): fix scan function to return only home bucket data by @adiholden in #474
- fix: maxmemory flag support human-readable format by @lsvmello in #476
- fix(server): Fix bad maxmemory casting by @romange in #477
- fix(server): Fix snapshot saving bug by @dranikpg in #479
- feat(server): add support for KEEPTTL options with SET command #389 by @Super-long in #478
- fix: DCHECK_NOTNULL gets WARNING when return value is not used. by @Super-long in #483
- fix(server): Fix path concatenation in save by @dranikpg in #481
- feat(server): implement json.resp command (#104) by @iko1 in #482
- feat(server family): add connection set name command fixes #458 by @adiholden in #485
New Contributors
- @Super-long made their first contribution in #434
- @lsvmello made their first contribution in #439
- @b0bleet made their first contribution in #464
- @adiholden made their first contribution in #466
Full Changelog: v0.10.0...v0.11.0
v0.10.0
Dragonfly 0.10.0
Hacktober edition
This release was unquestionably the result of community collaboration.
We are incredibly excited and honored to welcome all first-time contributors.
- Quite a few commands from 5.x, 6.x APIs were added by the community (see below).
- Support for dump/restore commands.
- Not so slowly but quite surely @iko1 added more json commands. This time - array related.
- bug fixes and general improvements.
Huge thanks to all the contributors! โค๏ธ
What's Changed
- feat(server): Implement ZMSCORE command #357 by @logandk in #367
- feat(server): implement json.arrpop command (#104) by @iko1 in #362
- feat(server): Add GETDEL command by @inohime in #365
- chore(server): Improve malloc-stats output by @romange in #370
- build(ci): add discord message on docker release by @ranrib in #375
- feat(server): implement json.arrtrim command (#104) by @iko1 in #373
- feat(server): Implement SMISMEMBER command by @ATM-SALEH in #377
- feat(server): Implement LPOS command #368 by @inohime in #379
- fix(server): support for dump command, API update #343 by @boazsade in #371
- feat(server): implement json.arrinsert command (#104) by @iko1 in #372
- feat(server): Implement ZPOPMIN and ZPOPMAX #358 #359 by @RedhaL in #378
- chore(server): Refactor expire functionality and move it to DbSlice by @romange in #388
- feat(server): implement json.arrindex command (#104) by @iko1 in #376
- feat(server): implement LMOVE #369 by @YuxuanChen98 in #391
- feat(server): Implement GETEX command #385 by @matchyc in #387
- chore(tests): adds support for ioredis integration tests + instructioโฆ by @gil-air-may in #394
- feat(server): support restore command - refactor load class (#343) by @boazsade in #386
- fix some typos by @cuishuang in #398
- Update README.md by @JensColman in #399
- Update dependency list in README.md by @eecheng87 in #403
- fix(server): remove double decrement of obj_memory_usage. by @romange in #406
- docs(server): Update the API status, README and LICENSE date by @romange in #410
- fix(hset): fix hset match bug by @romange in #411
New Contributors
- @logandk made their first contribution in #367
- @inohime made their first contribution in #365
- @ranrib made their first contribution in #375
- @ATM-SALEH made their first contribution in #377
- @RedhaL made their first contribution in #378
- @YuxuanChen98 made their first contribution in #391
- @matchyc made their first contribution in #387
- @gil-air-may made their first contribution in #394
- @cuishuang made their first contribution in #398
- @JensColman made their first contribution in #399
- @eecheng87 made their first contribution in #403
Full Changelog: v0.9.1...v0.10.0
v0.9.1
Dragonfly 0.9.1
A patch release fixing a possible deadlock when running with epoll API.
What's Changed
- feat(server): Implement MEMORY MALLOC-STATS command by @romange in #363
- chore(test): Allow running tests with epoll proactor by @romange in #364
- fix(epoll): pull newest helio dependency by @romange in #366
Full Changelog: v0.9.0...v0.9.1