Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.

Status

Current stateDraftUnder discussion

Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]

JIRA: here 

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

The following new configuration properties will be added to `DistributedConfig`:

PropertyTypeDefaultValid ValueDescription

status.storage.retry.max.retries

int

5

[0, MAX_INT]

Maximum number of retry attempts before giving up

status.storage.retry.initial.backoff.ms

long

300

[0, MAX_LONG]

Initial backoff delay in milliseconds

status.storage.retry.max.backoff.ms

long

10000

[0, MAX_LONG]

Maximum backoff delay cap in milliseconds

status.storage.retry.backoff.multiplier

double

2.0

[1.0, ∞[ 

Multiplier applied to backoff after each attempt

status.storage.retry.jitter.factor

double

0.25

[0.0, 1.0]

Jitter factor applied to backoff to add randomness


New JMX Metrics

New metrics will be exposed under the `status-backing-store-metrics` group:

Metric NameType Description

status-update-retry-total

Counter

Total number of retry attempts for status updates

status-update-failure-total

Counter

Total number of status updates that failed after all retries

status-update-success-total

Counter

Total number of successful status updates

Proposed Changes

1. Retry Configuration in DistributedConfig

...

A new `StatusBackingStoreMetrics` class will be created following the pattern of `ErrorHandlingMetrics`:


Code Block
languagejava


public class StatusBackingStoreMetrics implements AutoCloseable {

    private final ConnectMetrics.MetricGroup metricGroup;

    private final Sensor retries;

    private final Sensor failures;

    private final Sensor successes;

    

    public void recordRetry() { retries.record(); }

    public void recordFailure() { failures.record(); }

    public void recordSuccess() { successes.record(); }

}


...