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