Skip to content

kvserver: allocator should use io threshold instead of l0 sublevels #85084

@kvoli

Description

@kvoli

io threshold encapsulates the io overload a store is experiencing. We currently use the smoohted (max over 10 minutes) L0 sublevel count to exclude stores from rebalance targets.

func (o StoreHealthOptions) rebalanceToReadAmpIsHealthy(

This should be swapped with the io threshold instead, as this encapsulates the files and sublevels together.

ioThreshold struct {
syncutil.Mutex
t *admissionpb.IOThreshold // never nil
}

The value used should remain smoothed, using the swag utility on the receiver end to track the maximum.

Added in #78608

Jira issue: CRDB-18032

Metadata

Metadata

Assignees

Labels

A-kv-distributionRelating to rebalancing and leasing.C-enhancementSolution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)T-kvKV Team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions