Redefine replicantLifetime in terms of time rather than coordinator runs
- Dominant language
- Java
- Stars
- 14.1k
- Forks
- 3.8k
- Avg merge
- 2d 58m
- Merged PRs (30d)
- 233
Description
`replicantLifetime` config for Coordinator is currently documented as follows:
> The maximum number of coordinator runs for a segment to be replicated before we start alerting.
I suggest to replace it with a different config called "segmentLoadingTimeoutSecondsBeforeAlerting", i. e. to redefine it in terms of time rather than the number of coordinator runs.
The implementation may still check for dangling segment loadings only once in the coordinator run cycle, i. e. effective granularity of the checks will not be less than `druid.coordinator.period`. But this is an implementation detail that may change in the future.
In the transition period `replicantLifetime` may be accepted and multiplied by `druid.coordinator.period` to get the timeout value, while a warning or an alert is issued.
FYI @egor-ryashin
Contributor guide
Research direction
Search the Java Coordinator configuration and dangling segment-loading checks for replicantLifetime; first establish how coordinator periods and replication alerts are currently wired. Define the replacement timeout semantics, compatibility handling, warning or alert behavior, and tests that demonstrate time-based alerting before considering implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100