Dragonfly
In-memory datastore compatible with Redis and Memcached
Dragonfly is paying down its Redis fork debt and chasing correctness in the new IO loop.
◆Recent moves
- 5d ago
i1.39.11: chore(hll): sync hyperloglog.c with valkey upstream (#7961)
Resyncs the forked hyperloglog implementation with upstream Valkey after two years of drift, inheriting a CVE fix for sparse-opcode run-length overflow that could write through a wild pointer, plus AVX2 and ARM NEON merge kernels now used by PFMERGE and multi-key PFCOUNT. The sync also surfaced three Dragonfly-local bugs — the clearest illustration of what carrying forked code costs.
View source ↗ - 11d ago
Fix mutable cross-thread access on shared reply builder
A single fix removing mutable cross-thread access to a shared reply builder in the squash path. Internal concurrency correctness with no user-visible surface.
View source ↗ - 13d ago
i1.39.9: fix(facade): preserve pub/sub order on unsubscribe (v1 IO loop) (#7909)
Fixes a message-loss bug introduced in v1.38: anti-starvation quota logic could run a pipelined UNSUBSCRIBE ahead of pub/sub messages queued before it, setting subscriptions to zero and discarding them. The fix gates pipeline preference on FIFO order. Silent data loss in pub/sub is the kind of defect that erodes trust in a Redis replacement.
View source ↗ - 26d ago
i1.39.6: test: skip V2-only pause tests under V1 (#7822)
Replaces a failing assertion with a clean skip so two V2-only CLIENT PAUSE tests do not fail on the V1 leg of the regression matrix. Test hygiene, and incidental evidence that both IO loop generations are still being exercised.
View source ↗ - 1mo ago
i1.39.4: Add list compression tuning flags (#7762)
Promotes the ZSTD dictionary threshold flag out of experimental naming and adds a separate compression level flag for QList dictionary building. Small, but it gives operators a memory-versus-CPU dial that was previously not meant to be tuned.
View source ↗ - 1mo ago
i1.39.3: chore(server): migrate main_service handlers to CmdArgParser
Migrates most main_service command handlers from CmdArgList to CmdArgParser, following the same pattern applied earlier to the set and zset families. Pure internal refactoring with Eval handlers deliberately deferred.
View source ↗