跳到主要内容
当前查看的是 0.1.20。最新版本为 0.1.26。

Change log

查看 Markdown

This page lists user-visible changes to server-zd, newest first; each section covers the changes since the previous release of this component.

0.1.20​

Released 2026-11-06 as server-zd/v0.1.20. Reference: 0.1.20.

Breaking​

  • dev and local now default to 32 partitions instead of 1024; serve keeps 1024. To keep an existing 1024-partition directory, set cluster.partitionCount to 1024 in --config. Reference.
  • dev now honors api.listen from --config when --listen is absent. Review copied configuration files or pass --listen explicitly to keep the previous bind address. Reference.

Added​

  • dex-server-zd local runs a single production node on local disk with the same data directory layout and lock as dev. It allows a 30-second Step attempt drain by default. Reference.
  • dev and local warn at startup when listening on a non-loopback address without authenticators. Reference.

Changed​

  • Partition-count mismatch errors report the data directory and both counts. A hot standby classifies the mismatch as a configuration error. Reference.

0.1.19​

Released 2026-11-06 as server-zd/v0.1.19. Reference: 0.1.19.

Breaking​

  • streamStore.backend now defaults to memory for serve as well as dev. Set it to disabled to retain rejection of Client Stream calls with FAILED_PRECONDITION. Reference.
  • streamStore.maxTotalBytes caps node Stream data at 1 GiB by default; writes beyond it return RESOURCE_EXHAUSTED. Raise this setting and streamStore.maxStreamCapacityBytes (64 MiB by default) if applications need larger buffers. Reference.

Added​

  • dexzd_step_stream_writes_dropped_total counts dropped Step Stream writes by reason. These best-effort writes still never fail the Step. Reference.
  • Startup warns when streamStore.backend is disabled. Reference.

Changed​

  • A Stream message too large to fit still returns RESOURCE_EXHAUSTED, with an error explaining that it can never fit. The rejection no longer trims that Stream. Reference.

Fixed​

  • streamStore.estimatedMessageOverheadBytes, streamStore.backgroundTrimBatchSize, streamStore.trimBatchYieldTime, and streamStore.trimWorkers now take effect. Reference.
  • A rejected Stream write requests enough trimming to make room for itself, preventing continued rejection while usage sits at the trim target. Reference.
  • Stream message identities keep increasing after trimming removes a Stream and a write recreates it, so resume tokens do not skip new messages. Reference.

0.1.18​

Released 2026-11-05 as server-zd/v0.1.18. Reference: 0.1.18.

Breaking​

  • dev now defaults to strict durability and flushes acknowledged writes to disk. Pass --durability process-crash-safe or set dev.durabilityMode to processCrashSafe for the previous behavior. Reference.
  • Strict startup fails if the embedded store cannot open or flush its data directory or an ancestor directory. Fix the named directory before restarting. Release notes.
  • All durability modes refuse a data directory left unclean by a release before 0.1.4. Delete that directory to start empty; cleanly stopped directories remain usable. Release notes.

Added​

  • dex-server-zd dev --durability selects strict, process-crash-safe, or relaxed and overrides dev.durabilityMode. Reference.

Changed​

  • The embedded object store is now named s3local. Its on-disk format is unchanged. Release notes.

Fixed​

  • Strict writes flush parent directory entries, including existing directories and concurrent creation, before acknowledging writes. Release notes.

0.1.17​

Released 2026-11-05 as server-zd/v0.1.17. Reference: 0.1.17.

Breaking​

  • Protocol version 4 requires a coordinated server upgrade: stop all old active and standby processes before starting the new version, then upgrade SDKs. After the new binary writes to a storage prefix, roll forward or restore a pre-upgrade backup into a new prefix. Reference.
  • A Step attempt interrupted after its hand-out was committed now fails with NOT_COMPLETED and consumes a retry. Review retry policies and side effects before upgrading. Reference.
  • Retry total duration starts at the first hand-out and only gates scheduling another retry. Use method timeouts to bound a running attempt. Reference.
  • Steps with no available or supporting Worker now wait durably instead of failing with NO_WORKER_AVAILABLE. Set a Flow timeout when that wait must be bounded; matching.dispatchWait now applies only to RPCs. Reference.
  • Worker startup fails when its requested concurrency exceeds matching.maxConcurrentTasksCap (256 by default). Lower Worker concurrency or raise that cap and matching.maxStreams first. Reference.
  • limits.maxChildFlowResultBytes now limits child Flow results to 16 MiB by default. Raise it before starting affected runs or reduce result size. Reference.

Added​

  • Protocol version 4 records Step attempt start at hand-out to a reserved Worker slot and reports attempt_progress in recovery errors. The minimum supported protocol remains unchanged, so older SDKs keep working. Reference.
  • lifecycle.attemptDrainTimeout lets planned stops and step-downs drain running attempts for 30 seconds by default, or 2 seconds under dev. Set Kubernetes terminationGracePeriodSeconds longer than this timeout. Reference.
  • matching.syncMatchWait, matching.headsResyncInterval, matching.headsMaxSkippedDeletions, and matching.unsupportedTypeCacheEntries configure durable Step dispatch. Release notes.
  • dexzd_step_task_queue_entries and dexzd_step_task_queue_oldest_age_seconds expose durable backlog. The entries gauge can read low during background counting after recovery; use oldest age meanwhile. Reference.

Changed​

  • The RPC lock-conflict message now says “a Step” instead of “a running Step”. Reference.

Fixed​

  • limits.maxFlowStateBytes now checks state growth across Step attempts and RPCs that change Flow state. Reference.

0.1.16​

Released 2026-11-02 as server-zd/v0.1.16. Reference: 0.1.16.

Fixed​

  • A process that steps down and takes its own lease back resumes serving instead of exiting. Public calls still running after lease release end with UNAVAILABLE and may be retried. Reference.
  • Only the newest gRPC server instance accepts new connections, preventing startup refusals after readiness reports SERVING and first-call connection errors. Release notes.

Older releases: GitHub releases.