D

Dragonfly

D
Dragonfly Database v39.11

i1.39.11: chore(hll): sync hyperloglog.c with valkey upstream (#7961)

chore(hll): sync hyperloglog.c with valkey upstream Re-syncs src/redis/hyperloglog.c, forked from valkey 56ec1ff1c two years ago, with upstream 06d30f293, and keeps upstream's formatting so future syncs stay cheap. Imported from upstream: CVE-2025-32023: run-length overflow guards on every sparse opcode, not just VAL. A payload whose XZERO runs sum past INT_MAX wrapped the idx cursor negative and…

D
Dragonfly Database v39.10

i1.39.10

fix(squash): avoid mutable cross-thread access on shared reply builde…

D
Dragonfly Database v39.9

i1.39.9: fix(facade): preserve pub/sub order on unsubscribe (v1 IO loop) (#7909)

Since v1.38 the async_dispatch_quota anti-starvation logic in AsyncFiber could run a pipelined command such as UNSUBSCRIBE ahead of pub/sub messages that were queued before it, once the quota was reached. Running UNSUBSCRIBE early sets subscriptions to 0, so the still-queued messages are discarded and the subscriber loses messages published before it unsubscribed. Gate the quota-based pipeline pre…

D
Dragonfly Database v39.8

i1.39.8

feat(pubsub): close stuck subscribers to avoid publisher throttling (…

D
Dragonfly Database v39.6

i1.39.6: test: skip V2-only pause tests under V1 (#7822)

The regression matrix runs the suite with --df enable_resp_io_loop_v2 set to both false and true. That flag overrides the @dfly_args default, so the two V2-only CLIENT PAUSE tests ran under V1 and failed on their assert is_resp_io_loop_v2 guard. Replace the assert with a pytest.skip so the tests skip cleanly on the V1 leg instead of failing, while still running under V2.

D
Dragonfly Database v39.5

i1.39.5

fix(facede): Include VerbatimString in reply capture

D
Dragonfly Database v39.4

i1.39.4: Add list compression tuning flags (#7762)

Rename the ZSTD dictionary threshold flag to a non-experimental name and add a separate list compression level flag used when building QList dictionaries. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

D
Dragonfly Database v39.3

i1.39.3: chore(server): migrate main_service handlers to CmdArgParser

Migrate most main_service.cc command handlers from CmdArgList to CmdArgParser, following the same pattern as the recent set_family.cc and zset_family.cc migrations. Update Quit, Multi, Watch, Unwatch, Discard, Exec, Publish, Subscribe, Unsubscribe, PSubscribe, PUnsubscribe, Function, Monitor, Pubsub, Command handlers Propagate ParsedArgs through ChangeSubscription/ChangePSubscription in conn_conte…

D
Dragonfly Database v39.2

i1.39.2

feat(server): Concurrent squashing (#7597)

D
Dragonfly Database v39.1

i1.39.1: fix(facade): retire experimental_io_loop_v2 flag (#7605)

The experimental_io_loop_v2 flag was accidentally dropped. Using ABSL_RETIRED_FLAG instead of simply removing it preserves backward compatibility for deployments that reference it in configs or scripts. Signed-off-by: Gil Levkovich 69595609+glevkovich@users.noreply.github.com

D
Dragonfly Database v1.39.0

v1.39.0

Dragonfly v1.39.0 This release delivers a significant leap in full-text search capability — FT.HYBRID fuses vector similarity with text queries, exact phrase matching with slop arrives, Porter stemming is on by default for TEXT fields, and BM25STD/TFIDF scoring with WITHSCORES support rounds out a deeply improved search engine. Performance improves across the board: PubSub reply batching cuts sysc…

D
Dragonfly Database v38.3

i1.38.3: facade: Trim parsed args if capacity much higher than size (#7386)

facade: Trim parsed args if overallocated On parsing new command, if cap > 2* prev size needed, then trim command to avoid holding onto oversized capacity. Also do this only over 256 KiB to not churn on small commands and only correct large allocs Signed-off-by: Abhijat Malviya abhijat@dragonflydb.io (cherry picked from commit 0a369ac) facade: Do not use clear to drop memory This API has changed i…

D
Dragonfly Database v38.2

i1.38.2: fix: handle incompressible data in HuffmanCheckTask (#7251)

HuffmanCheckTask crashes the process with SIGABRT when key data is incompressible (e.g. random hashes, UUIDs, encrypted blobs): F huff_coder.cc:108] Check failed: !HUF_isError(size) The task runs as an idle task on shard 0 once key memory exceeds 50 MB. It builds a Huffman frequency table from sampled key data, then unconditionally calls HuffmanEncoder::Export() to serialize the table for logging.…

D
Dragonfly Database v1.38.1

v1.38.1

This is a patch release What's Changed fix(server): Re-use journal executor (#7201) test(connection): add a fix for FIN_WAIT_2 leak bug with BLPOP (#7224) fix: avoid O(n) scans in NotifyWatchQueue (#7225) Full Changelog: v1.38.0...v1.38.1