Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

admit_long: prototype a granter for long-lived work #141501

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

sumeerbhola
Copy link
Collaborator

The granter is initially for Pebble compactions and snapshot ingests and is aware of node CPU and per-store disk bandwidth consumption. It monitors the CPU and write bandwidth of this work (read bandwidth is not explicitly modeled, but the observation of aggregate read bandwidth can correct for this oversight).

The granter is integrated with MultiQueue (for snapshot ingest) such that the semaphore is generalized. It is also integrated with Pebble.

#136615 (comment) has some experimental results.

The granter can also run in a non-resource driven mode, in which case it would simply apply fixed limits on the number of compactions (or snapshot) per store and per node.

There is currently no rate limiting of long-lived work, once admitted. Such rate limiting may be necessary for production deployments.

Informs #136615

Epic: none

Release note: None

The granter is initially for Pebble compactions and snapshot ingests
and is aware of node CPU and per-store disk bandwidth consumption. It
monitors the CPU and write bandwidth of this work (read bandwidth is
not explicitly modeled, but the observation of aggregate read bandwidth
can correct for this oversight).

The granter is integrated with MultiQueue (for snapshot ingest) such
that the semaphore is generalized. It is also integrated with Pebble.

cockroachdb#136615 (comment)
has some experimental results.

The granter can also run in a non-resource driven mode, in which case
it would simply apply fixed limits on the number of compactions (or
snapshot) per store and per node.

There is currently no rate limiting of long-lived work, once admitted.
Such rate limiting may be necessary for production deployments.

Informs cockroachdb#136615

Epic: none

Release note: None
Copy link

blathers-crl bot commented Feb 14, 2025

Your pull request contains more than 1000 changes. It is strongly encouraged to split big PRs into smaller chunks.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

@cockroach-teamcity
Copy link
Member

This change is Reviewable

@sumeerbhola
Copy link
Collaborator Author

This is a prototype so teams other than admission-control and storage should ignore it.

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.

2 participants