Skip to content

v0.38.0

Latest

Choose a tag to compare

@KIvanow KIvanow released this 14 Aug 18:20
e080c38

Focus of this release: smarter anomaly detection. Four new detectors/advisories drawn from real Valkey failure modes, one detection accuracy fix, and a build-system cleanup.

✨ New — Anomaly detection & advisories

  • Replica full-resync failure loop (#373, valkey#1836) — Flags a replica that keeps failing full sync and reconnecting in a loop, instead of quietly churning. Surfaces the stuck replica before it burns bandwidth and delays replication indefinitely.
  • Orphaned keys in unowned cluster slots (#376, valkey#539) — Detects keys living in hash slots the node no longer owns (e.g. after a resharding that didn't fully migrate), which are otherwise invisible and unreachable through normal cluster routing.
  • appendfsync=always blocking advisory (#375, valkey#3515) — Raises a config hazard when appendfsync=always is set, since it fsyncs on the main thread for every write and can severely cap throughput. Called out so operators can make the durability-vs-latency tradeoff deliberately.
  • Config-drift now covers encoding thresholds (#374, valkey#3479) — Extends config-drift detection to encoding-threshold settings (e.g. *-max-listpack-* / *-max-intset-*), catching silent memory/CPU regressions from drifted encoding limits.

🐛 Fixed

  • Memory-overhead detector no longer false-alarms on underflowed samples (#372) — Underflowed memory readings are now skipped rather than treated as real overhead, removing spurious anomalies.

🔧 Changed / Internal

  • Single multi-target Dockerfile (#379) — Consolidated Dockerfile.prod into one multi-target Dockerfile, simplifying the build matrix and the publish workflow. No change to published image behavior.

Full changelog: v0.37.0...v0.38.0

What's Changed

  • fix(anomaly): skip underflowed memory samples in memory-overhead detector by @jamby77 in #372
  • feat(anomaly): detect replica full-resync failure loop (valkey#1836) by @jamby77 in #373
  • feat(anomaly): extend config-drift to encoding-threshold configs (valkey#3479) by @jamby77 in #374
  • feat(monitor): appendfsync=always main-thread blocking advisory (valkey#3515) by @jamby77 in #375
  • feat(anomaly): detect orphaned keys in unowned cluster slots (valkey#539) by @jamby77 in #376
  • refactor(docker): merge into a single multi-target Dockerfile by @KIvanow in #379

Full Changelog: v0.37.0...v0.38.0