Skip to content

kvserver: load based splitting should be on a more granular metric #83519

@kvoli

Description

@kvoli

Currently we load based split when the number of requests (requests in all batch requests) exceeds the qps split threshold (default 2500).

Requests are not uniform however and may be orders of magnitude more expensive than each other e.g. scan of 3k rows vs point read.

We should split on a more granular metric than requests per second. Such as the number of bytes read + written to a range per second.

The threshold should also be adjusted with testing to a new suitable default.

One alternative is to use the number of key accesses as opposed to the number of bytes. This method would not account for large values being read or written, however would set each access at a fixed cost.

Jira issue: CRDB-17122

Epic CRDB-18661

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-kvAnything in KV that doesn't belong in a more specific category.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