Clarify worker/supervisor heartbeat docs and deprecate unused nimbus.supervisor.timeout.secs - #8984
Merged
rzo1 merged 4 commits intoAug 20, 2026
Conversation
…supervisor.timeout.secs Documentation still described the pre-2.0 model in which workers/tasks heartbeat directly into ZooKeeper. Since 2.0 (STORM-2693), worker liveness heartbeats are written to local disk and relayed to Nimbus over Thrift, held in an in-memory heartbeat cache; supervisor liveness is an ephemeral ZooKeeper node detected via session expiry. Docs: - Daemon-Fault-Tolerance.md: describe the actual worker heartbeat relay path and the ephemeral-znode supervisor liveness mechanism. - Lifecycle-of-a-topology.md: note (inline in the 0.7.1 walkthrough) that the ZK-directory heartbeat model was replaced in 2.0. - Cluster-State-Serialization.md: clarify worker heartbeats are not persisted in ZooKeeper by default (only under Pacemaker/legacy configuration). Config: - Because supervisor crash detection relies on ephemeral znodes, no Nimbus-side supervisor timeout check exists, so nimbus.supervisor.timeout.secs is never read. Mark the DaemonConfig constant @deprecated, remove the misleading defaults.yaml entry, and drop two inert references in NimbusClojurePortTest. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
reiabreu
marked this pull request as ready for review
August 19, 2026 23:43
Match Storm's existing deprecation convention (e.g. Config.java) by marking the unused constant @deprecated(forRemoval = true, since = "3.0.1") and stating in the javadoc that it is scheduled for removal. 3.0.1 is the current development version (root pom is 3.0.1-SNAPSHOT). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Set since = "3.1.0" (the milestone this deprecation targets) on the @deprecated(forRemoval = true) annotation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
An earlier commit removed the defaults.yaml entry. Since the deprecation targets removal in a future release (not now), keep the shipped default in place during the deprecation window and add a comment explaining it is unused (supervisor liveness is tracked via ephemeral ZooKeeper nodes). The entry itself is unchanged from master; only the explanatory comment is added. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
GGraziadei
approved these changes
Aug 20, 2026
GGraziadei
left a comment
Member
There was a problem hiding this comment.
Hi @reiabreu thanks for the PR.
rzo1
approved these changes
Aug 20, 2026
rzo1
approved these changes
Aug 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Corrects heartbeat docs that still described the pre-2.0 ZooKeeper model, and deprecates a config key nothing reads. Motivated by this user-list thread.
Since STORM-2693, worker liveness heartbeats go worker → local disk → supervisor → Nimbus over Thrift (held in an in-memory cache, not ZooKeeper); supervisor liveness is an ephemeral ZK node detected via session expiry, so
nimbus.supervisor.timeout.secsis never read.Daemon-Fault-Tolerance.md,Lifecycle-of-a-topology.md, andCluster-State-Serialization.mdto describe this.NIMBUS_SUPERVISOR_TIMEOUT_SECS@Deprecated(forRemoval = true, since = "3.1.0"); keep thedefaults.yamlentry with a deprecation comment; drop two inert test references.