Clarify worker/supervisor heartbeat docs and deprecate unused nimbus.supervisor.timeout.secs (#8984)
* Clarify worker/supervisor heartbeat docs and deprecate unused nimbus.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>
* Use forRemoval/since on deprecated NIMBUS_SUPERVISOR_TIMEOUT_SECS
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>
* Target 3.1.0 milestone for NIMBUS_SUPERVISOR_TIMEOUT_SECS removal
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>
* Keep deprecated nimbus.supervisor.timeout.secs default with a comment
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>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
6 files changed