You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3.**Sleep(timeout)** — allow in-flight tuples to drain through the bolt DAG
153
+
3.**Sleep(timeout)** — allow in-flight tuples to drain through the bolt DAG (`SUPERVISOR_WORKER_SHUTDOWN_SLEEP_SECS`, defaults to `TOPOLOGY_MESSAGE_TIMEOUT_SECS`)
154
154
4.**Bolts** — stop processing (deactivate)
155
155
5.**Ackers** — stop tracking (last, so late acks can still be processed)
|`SUPERVISOR_WORKER_SHUTDOWN_SLEEP_SECS`| = `TOPOLOGY_MESSAGE_TIMEOUT_SECS`| Drain window during shutdown (time between stopping spouts and stopping bolts) |
154
155
|`TOPOLOGY_SLEEP_SPOUT_WAIT_STRATEGY_TIME_MS`| 100 | Spout executor timeout: how often the spout wakes to poll for new tuples when idle |
155
156
|`TOPOLOGY_DEBUG`| false | Enable trace-level logging with timing |
156
157
|`TOPOLOGY_TICK_TUPLE_FREQ_SECS`| (none) | Per-bolt tick tuple interval in seconds |
@@ -198,13 +199,14 @@ The ring buffer must also be large enough to hold `TOPOLOGY_MAX_SPOUT_PENDING` i
198
199
199
200
**Message timeout and shutdown:**
200
201
201
-
`TOPOLOGY_MESSAGE_TIMEOUT_SECS` serves three roles:
202
+
`TOPOLOGY_MESSAGE_TIMEOUT_SECS` serves two roles:
202
203
203
204
1.**Acker bucket rotation** — tuples older than this are expired
204
-
2.**Shutdown drain window** — the system sleeps this long between stopping spouts and stopping bolts
205
-
3.**Restart backoff ceiling** — indirectly affects how long restarts take
205
+
2.**Restart backoff ceiling** — indirectly affects how long restarts take
206
206
207
-
Lower values speed up shutdown and failure detection, but risk false-expiring tuples that are merely slow to process.
207
+
`SUPERVISOR_WORKER_SHUTDOWN_SLEEP_SECS` controls the **shutdown drain window** — the sleep between stopping spouts and stopping bolts. It defaults to `TOPOLOGY_MESSAGE_TIMEOUT_SECS` when not set, so existing configurations behave identically. Set it independently when you need a long message timeout (for slow processing) but a fast shutdown.
208
+
209
+
Lower `TOPOLOGY_MESSAGE_TIMEOUT_SECS` speeds up failure detection but risks false-expiring tuples that are merely slow to process.
208
210
209
211
**Acker capacity:**
210
212
@@ -220,6 +222,7 @@ Acker tasks are stateless relative to each other (each tracks a disjoint set of
220
222
| Reduce thread count | Set `withExecutors` lower than `withParallelism` (share threads) |
0 commit comments