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

storage controller: use Utilization in scheduling decisions #7798

Open
jcsp opened this issue May 17, 2024 · 0 comments
Open

storage controller: use Utilization in scheduling decisions #7798

jcsp opened this issue May 17, 2024 · 0 comments
Labels
c/storage/controller Component: Storage Controller t/feature Issue type: feature, for new features or requests

Comments

@jcsp
Copy link
Contributor

jcsp commented May 17, 2024

Currently, the scheduler orders nodes according to constraints, and then within nodes which have the same AffinityScore, we select the one with the fewest shards assigned to it.

That works pretty well at small scale and when we're mainly dealing with big tenants who have big shards such that disk space and shard count are strongly correlated.

In order to make the storage controller work well with large numbers of tiny tenants, we'll need to use the Utilization of a pageserver (already stored in Node courtesy of the heartbeater) in the scheduling.

This ticket isn't about making the scheduler perfect, just to make sure that we do something sensible if we have e.g. one node with 10 shards whose utilization is full, and another node with 1000 shards whose utilization is really low because all those 1000 shards are little 32mb ones.

@jcsp jcsp added t/feature Issue type: feature, for new features or requests c/storage/controller Component: Storage Controller labels May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c/storage/controller Component: Storage Controller t/feature Issue type: feature, for new features or requests
Projects
None yet
Development

No branches or pull requests

1 participant