# Dragonfly v1.38.0 - Product: Dragonfly (https://whatsnew.fyi/product/dragonfly) - Vendor: DragonflyDB - Date: 2026-04-14 - Version: v1.38.0 - Original notes: https://github.com/dragonflydb/dragonfly/releases/tag/v1.38.0 - Permalink: https://whatsnew.fyi/product/dragonfly/releases/v1.38.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Top-K command family (TOPK.*) with RedisBloom compatibility and RDB persistence - **added** — Count-Min Sketch family (CMS.*) with INITBYDIM, INITBYPROB, INCRBY, QUERY, MERGE, and INFO commands with RDB persistence - **added** — HTTL command to return remaining TTL for specific hash fields - **added** — VECTOR_RANGE search for radius-based vector similarity queries in FT.SEARCH and FT.AGGREGATE with optional YIELD_DISTANCE_AS - **added** — FT.AGGREGATE support for FILTER, APPLY, DIALECT, and KNN steps in the aggregation pipeline - **added** — New Prometheus metrics including pipeline latency histogram, TLS handshake counter, stream access patterns, and pipeline blocking counter - **added** — AWS credential chain support for EKS Pod Identity and ECS task roles for S3 - **changed** — Reduce memory usage by ~26% for TTL workloads by eliminating expire table and embedding expiry in CompactKey via SDS_TTL_TAG - **changed** — KNN prefilter now falls back to brute-force scan when prefilter result set is small - **changed** — Replica expired-key deletion enabled by default with --replica_delete_expired flag allowing replicas to proactively delete expired keys on reads - **changed** — Early TLS filter and TCP_DEFER_ACCEPT drops zombie connections at OS level before allocating fiber and OpenSSL state - **changed** — Memcached io_loop_v2 enabled by default for async I/O with deferred replies - **changed** — Incremental SBF replication flushes Scalable Bloom Filter chunks incrementally to bound peak memory - **fixed** — Fix HNSW index creation failure, logs, and drop - **fixed** — Validate stream command arguments to prevent crashes #### Dragonfly v1.38.0 This release is a major one with lots of significant improvements and stability fixes. It may behave differently due to changes in its core data structures. We worked hard to avoid any regressions so please let us know if you observe degradation around item expiry behavior, replication or backups. ##### Important stability fixes and changes: **Top-K command family** (TOPK.*): RedisBloom-compatible heavy-hitter sketch with RDB persistence. (#6920, #6931, #6932, #6950) **Count-Min Sketch family** (CMS.*): Full CMS with INITBYDIM, INITBYPROB, INCRBY, QUERY, MERGE, INFO. RDB persistence. (#6867, #6888, #6896, #6897) **~26% memory reduction for TTL workloads**: Expire table eliminated, expiry embedded in CompactKey via SDS_TTL_TAG. 10M keys: 900 MB -> 665 MB. (#6923, #6925, #6933) **HTTL command**: Returns remaining TTL for specific hash fields. (#6879) **VECTOR_RANGE search**: Radius-based vector similarity queries in FT.SEARCH and FT.AGGREGATE for both FLAT and HNSW indexes, with optional YIELD_DISTANCE_AS. (#6880, #6898, #6938) **FT.AGGREGATE: FILTER, APPLY, DIALECT, KNN**: Full expression-based filtering, computed fields, dialect selection, and KNN steps in the aggregation pipeline. (#6968, #6982, #7066) **Smarter KNN prefilter**: Falls back to brute-force scan when prefilter result set is small. (#6730) **Replica expired-key deletion**: Replicas proactively delete expired keys on reads. --replica_delete_expired (default true). (#6985) **New Prometheus metrics**: Pipeline latency histogram (dragonfly_pipeline_latency_seconds), TLS handshake counter (tls_handshakes_total), stream access patterns (stream_accesses_total), pipeline blocking counter. (#6688, #7015, #6767, #6685) **EKS Pod Identity for S3**: AWS credential chain supports EKS Pod Identity and ECS task roles. (#6917) **Early TLS filter and TCP_DEFER_ACCEPT**: Drops zombie connections at OS level before allocating fiber/OpenSSL state. (#6857) *Memcached io_loop_v2 enabled by default**: Async I/O with deferred replies. (#6700) **Incremental SBF replication**: Scalable Bloom Filter chunks flushed incrementally, bounding peak memory. (#7034) ##### What's Changed * chore(server): Extend script slowlog stats by @dranikpg in https://github.com/dragonflydb/dragonfly/pull/6656 * test(ci): exclude flaky BullMQ tests by @vyavdoshenko in https://github.com/dragonflydb/dragonfly/pull/6673 * feat(fuzz): Add LLM-guided PR fuzzing with targeted seed generation by @vyavdoshenko in https://github.com/dragonflydb/dragonfly/pull/6666 * refactor(journal): replace Journal class with free functions by @romange in https://github.com/dragonflydb/dragonfly/pull/6672 * fix(search): Fix HNSW index creation failure, logs, drop by @dranikpg in https://github.com/dragonflydb/dragonfly/pull/6662 * refactor: clean includes by @BorysTheDev in https://github.com/dragonflydb/dragonfly/pull/6679 * chore: remove facade/acl_commands.h by @kostasrim in https://github.com/dragonflydb/dragonfly/pull/6682 * fix: improve fuzz-pr crash detection and artifact packaging by @vyavdoshenko in https://github.com/dragonflydb/dragonfly/pull/6686 * feat(tiering): Use Future::IsResolved to check if delayed entry is resolved by @mkaruza in https://github.com/dragonflydb/dragonfly/pull/6665 * test: mark heavy skipped tests as large instead of skip by @vyavdoshenko in https://github.com/dragonflydb/dragonfly/pull/6675 * feat: add pipeline latency histogram and Prometheus SUMMARY export by @romange in https://github.com/dragonflydb/dragonfly/pull/6688 * refactor: move methods from OAHEntry to OAHSet by @BorysTheDev in https://github.com/dragonflydb/dragonfly/pull/6692 * chore: remove duplicate info reported by "memory stats" by @romange in https://github.com/dragonflydb/dragonfly/pull/6696 * server: Collect stats for why defragmentation was skipped by @abhijat in https://github.com/dragonflydb/dra _[Truncated at 4000 characters — full notes: https://github.com/dragonflydb/dragonfly/releases/tag/v1.38.0]_