Skip to content

admission: replace soft slots mechanism with elastic cpu tokens #88032

@irfansharif

Description

@irfansharif

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

We introduced a notion of soft slots in admission control (#78519) for additional threads for Pebble compaction compression. We envisioned granting these "squishy" slots to background activities and permit work only under periods of low load. In working through #86638 (as part of #75066), we observed experimentally that the moderate-slots count was not sensitive enough to scheduling latency, and consequently latency observed by foreground traffic. Elastic CPU tokens, the kind now being used for backups, offer an alternative to soft slots. This issue tracks:

  • Replacing the use of soft slots in additional pebble compaction compression threads
  • Running some sanity check experiments as part of this (perhaps those we ran in admission: introduce soft slots for speculative concurrency #78519)
  • Removing the code around soft/moderate load slots (it's better to minimize the number of mechanisms in the admission package)

Additional context

Some internal discussion here. Also #87883 could help highlight the (lack of) sensitivity to scheduling latency, perhaps worth checking again. Note that the elastic CPU limiter is disabled for 22.2, so if we're looking to do this in 22.2 (likely too late in the release), we'd have to rework the feature gates slightly to only block the integration with ExportRequests.

+cc @sumeerbhola, @andrewbaptist, @bananabrick.

Jira issue: CRDB-19649

Epic CRDB-20293

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions