Skip to content

[server][client] Add cooperative KV backpressure based on RocksDB L0#3463

Open
platinumhamburg wants to merge 1 commit into
apache:mainfrom
platinumhamburg:kv-backpressure-naming
Open

[server][client] Add cooperative KV backpressure based on RocksDB L0#3463
platinumhamburg wants to merge 1 commit into
apache:mainfrom
platinumhamburg:kv-backpressure-naming

Conversation

@platinumhamburg

Copy link
Copy Markdown
Contributor

Introduce a two-tier backpressure model to keep RocksDB write stall from blocking RPC handler threads:

  • Tier 1 (piggyback): server reports a normalized [0, 1) pressure on PbPutKvRespForBucket once L0 reaches kv.backpressure.l0-slowdown-trigger (default 12); client throttles per bucket with max_throttle_ms * p^3 via client.writer.kv-backpressure.max-throttle-ms (default 5000ms).
  • Tier 2 (hard rejection): once L0 reaches RocksDB's level0_slowdown_writes_trigger, server throws StorageBackpressureException (Errors code 71, RetriableException); client applies the same max-throttle window as backoff before retry.

Add maintenance configuration doc for the new server option.

Purpose

Linked issue: close #3454 3454

Brief change log

Tests

API and Format

Documentation

@platinumhamburg platinumhamburg force-pushed the kv-backpressure-naming branch 2 times, most recently from ae8a015 to 793a2eb Compare June 10, 2026 10:10
Introduce a two-tier backpressure model to keep RocksDB write stall
from blocking RPC handler threads:

- Tier 1 (piggyback): server reports a normalized [0, 1) pressure on
  PbPutKvRespForBucket once L0 reaches kv.backpressure.l0-slowdown-trigger
  (default 12); client throttles per bucket with max_throttle_ms * p^3
  via client.writer.kv-backpressure.max-throttle-ms (default 5000ms).
- Tier 2 (hard rejection): once L0 reaches RocksDB's
  level0_slowdown_writes_trigger, server throws
  StorageBackpressureException (Errors code 71, RetriableException);
  client applies the same max-throttle window as backoff before retry.

Add maintenance configuration doc for the new server option.
@platinumhamburg platinumhamburg force-pushed the kv-backpressure-naming branch from 793a2eb to 6470160 Compare June 10, 2026 13:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backpressure on KV Operations Instead of Cluster-Wide Stalling

1 participant