Skip to content

kvflowcontrol,kvserver: fast follow-on work #104154

@irfansharif

Description

@irfansharif

Is your feature request related to a problem? Please describe.

This issue tracks deferred work from PRs that introduced replication admission control (#95563, #98308). This list is sourced partly using checked-in TODOs ($ rg "#95563" --before-context 4).

  • kvserver: remove above-raft throttling for AddSST #102683
  • Export metric to track total AddSST bandwidth, both proposed and applied (this was prototyped in #93102, addsstable.{proposal,application}_bytes)
    • The aggregated elastic flow tokens deducted metric works well as a substitute
  • kvflowcontroller: mutex contention #105508
    • TODO: Eliminate heap allocation in kvflowcontrol.ContextWithMeta
    • TODO: Write microbenchmark for allocation profile of WorkQueue.Admit, and optionally improve it.
  • TODO: Eliminate OOM possibility when kvadmission.flow_control.mode = apply_to_elastic.
  • TODO: Add a byte/count limit to how many flow token dispatches can be added to a raft message
  • Surface some kvflowcontrol metrics in the admin UI.
  • Address remaining performance cuts identified in kvflowcontrol: annotate/fix perf regressions #109833.
  • Dump vtable state in debug.zip
  • Don't use flow tokens (or AC really) for lease requests (see this comment).
  • Don't use flow tokens or AC when writing to system tables (especially around writes to cluster settings)
  • TODO: Fix over-admission due to AC token acquisition fast path.
  • TODO: Remove O(local stores) lookup for flow control handles.

Epic CRDB-25348

Jira issue: CRDB-28374

Epic CRDB-25348

Metadata

Metadata

Assignees

Labels

A-admission-controlC-enhancementSolution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)T-admission-controlAdmission Control

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions