What dragonflydb/dragonfly shipped
Written by FoxPlug from public releases; not affiliated with Dragonflydb. An automatic summary of the public release, pull request and commit data of github.com/dragonflydb/dragonfly. Dragonflydb did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Get a weekly update like this for your product, free
Week of September 21, 2026
What shipped
- CLUSTER SLOTS and SHARDS commands now batch their replies to reduce socket writes from thousands to one for large slot configurations. Pull request #8390
- Tiering now correctly accounts for large disk allocations above 1 MiB to track actual disk usage. Pull request #8377
- SCRIPT FLUSH no longer deadlocks by making the interpreter pool non-blocking with generation-based expiration. Pull request #8110
- FT.PROFILE now reports shard-side search errors instead of silently treating them as empty results. Pull request #8391
- Glob pattern matching in KEYS, SCAN, and other commands now iterates instead of recursing to prevent fiber stack overflow. Pull request #8350
- List compression is now controlled by a configurable policy flag instead of a single threshold. Pull request #8008
- Empty field names are now rejected in FT.CREATE, FT.ALTER, and FT.SEARCH to prevent crashes. Pull request #8385
- Set implementation reverted from StringSet back to OAHset. Pull request #8398
- Data heap destruction is now one-shot instead of making many individual destructor calls. Pull request #8336
- Replication tests now wait for replicas to catch up before comparing data sets. Pull request #8369
Why it matters
This week addresses performance bottlenecks in clustering and tiering, fixes critical issues in search and script management that could cause crashes or deadlocks, and improves test reliability. Memory and pattern matching improvements benefit workloads at scale.
Changelog entry
- perf: batch reply for cluster slots/shards - reduces socket flushes from N*7 to 1 for 8k slots Pull request #8390
- fix(tiering): Account for large disk allocations above 1 MiB Pull request #8377
- fix: non-blocking interpreter pool so SCRIPT FLUSH can't deadlock Pull request #8110
- fix(search): make FT.PROFILE report shard errors like FT.SEARCH Pull request #8391
- fix(core): match globs iteratively to prevent fiber stack overflow Pull request #8350
- feat(qlist): add --list_compress_policy for list compression configuration Pull request #8008
- fix: reject empty field names and consume SETID parse errors Pull request #8385
- fix(set): set OAHset implementation instead of StringSet Pull request #8398
- perf: one-shot data heap destruct Pull request #8336
- fuzz: make crash replay find the input that actually crashed the server Pull request #8396
This week: cluster command batching reduces socket writes, SCRIPT FLUSH deadlock fix, FT.PROFILE error reporting, glob pattern overflow prevention, and tiering disk accounting improvements.
Weekly update: CLUSTER SLOTS/SHARDS now batch replies for massive write reduction on large configurations. SCRIPT FLUSH deadlock eliminated through non-blocking interpreter pool. Search profiling now reports shard errors correctly. Pattern matching prevents fiber stack overflow. Tiering accurately tracks large disk allocations. Plus fixes to empty field validation and replication test reliability.
Week of September 14, 2026
What shipped
- Dragonfly v2.0.0 released, marking a major version milestone after three years with expanded Redis and Valkey compatibility. Release
- SCAN command family refactored to use shared ScanResult container with packed storage for better performance on small scan keys. Pull request #8352
- SCAN result collection optimized by packing key bytes into shared backing storage, with fallback to individual strings after 1 MiB. Pull request #8314
- Hash field expiration accuracy improved with second-resolution deadline helpers and rounded deadlines for better replay determinism. Pull request #8340
- Valkey TCL CI gate expanded from stream/pubsub to 248 additional passing tests including incr, string, bitfield, bitops, scan, dump, and geo. Pull request #8343
- Lua performance optimized by retrieving string data pointers and byte lengths in single API calls during redis.call argument preparation. Pull request #8335
- Expired keys now hidden from read commands even when client pause is active, improving consistency. Pull request #8323
- Commands parked by CLIENT PAUSE now properly released when connections close, preventing SIGTERM/SHUTDOWN hangs. Pull request #8296
- Hash and zset listpack validation improved on RDB load to surface errors and prevent NULL-dereference crashes. Pull request #8328
- Script load contention reduced by releasing borrowed Lua interpreters immediately after compilation before journaling. Pull request #8321
Why it matters
Version 2.0.0 marks significant maturity and production readiness. This week's changes focus on performance optimizations for SCAN operations, improved hash expiration accuracy, expanded Valkey test compatibility, and critical fixes for client pause handling and script loading that improve reliability at scale.
Changelog entry
- Release v2.0.0 with expanded Redis and Valkey compatibility Release
- Refactor SCAN command family to use shared ScanResult container with packed storage for small keys Pull request #8352
- Optimize SCAN result collection by packing key bytes into shared backing storage Pull request #8314
- Improve hash field expiration accuracy with second-resolution deadline helpers Pull request #8340
- Expand Valkey TCL CI gate to include 248 additional passing tests Pull request #8343
- Optimize Lua redis.call performance by retrieving string data in single API call Pull request #8335
- Hide expired keys from reads even when client pause is active Pull request #8323
- Fix CLIENT PAUSE hang by properly releasing parked commands on connection close Pull request #8296
- Validate hash and zset listpacks deeply on RDB load to prevent crashes Pull request #8328
- Reduce script load contention by releasing interpreters before journaling Pull request #8321
- Reject default user authentication without JWT token when JWT is enabled Pull request #8291
- Allow JWT authentication with TLS Pull request #8322
- Verify ACL categories match Valkey in CI Pull request #8311
- Fix ACL category mismatches and implicit category overwriting Pull request #8308
- Fix per-key permission checks for read-write commands Pull request #8249
- Reject invalid cluster node health values in config parser Pull request #8306
- Turn off journal after a bound when replica will not reconnect Pull request #8259
- Use RESPParser for Redis replication Pull request #8211
Dragonfly v2.0.0 is here. Three years in the making. Expanded Redis/Valkey compatibility, optimized SCAN performance, better hash expiration accuracy, and critical reliability fixes.
We're excited to announce Dragonfly v2.0.0—a major milestone representing three years of development toward production maturity. This release includes optimized SCAN command performance through shared result storage, improved hash field expiration accuracy for deterministic replay, expanded Valkey TCL test compatibility covering 248 additional tests, and critical reliability fixes including proper CLIENT PAUSE cleanup and script loading contention reduction.