Skip to content

admission: improvements to KV admission #65957

@sumeerbhola

Description

@sumeerbhola

Misc TODOs/limitations in KV admission control:

  • Most work initiated from within KV bypasses admission control. This is not appropriate especially for background work like GC, backups etc. Fixing this mainly requires finding the places in the code where the low priority work originates and plumbing the appropriate AdmissionHeader. (Export, GC are now subject to admission control kvserver,backupccl: make export, gc subject to admission control #71109, but there are TODOs regarding priority assignment)
  • There is no KVLowPriWork WorkKind, which means even low-priority KV work will get prioritized over user-facing SQL processing. (Edit: with the elastic classification, this is no longer true, since low-priority KV work goes through a different grant coordinator).
  • The initial scan for RangeFeedRequest is not subject to admission control.
  • Read-only work is throttled when storage engines are overloaded due to writes. We need a way to distinguish work that includes writes, and make it pass through an additional WorkQueue that is hooked up to an Granter that only uses write overload as a resource signal.
  • When there are multiple stores, a single engine (for a particular store) being overloaded due to writes will cause work to be throttled for all stores.

Jira issue: CRDB-7813

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions