apache / apache/druid

Redefine replicantLifetime in terms of time rather than coordinator runs

Open
#7,136 0 comments 0 reactions 0 assignees View on GitHub
Area - Operations Design Review
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.