Selector
Introduction
When a table is created, Metasrv uses a Selector to choose Datanodes for its Regions. Selection uses the current node leases and, depending on the selector, Region statistics.
Selector Type
The Metasrv service currently offers the following types of Selectors:
LeaseBasedSelector
LeaseBasedSelector randomly selects from Datanodes with valid leases.
LoadBasedSelector
The LoadBasedSelector load value is determined by the number of regions on each Datanode, fewer regions indicate lower load, and LoadBasedSelector prioritizes selecting low-load Datanodes.
RoundRobinSelector [default]
RoundRobinSelector selects Datanodes in a round-robin fashion. It is the default and recommended choice for most deployments.
Configuration
You can configure the Selector by its name when starting the Metasrv service.
- LeaseBasedSelector:
lease_basedorLeaseBased - LoadBasedSelector:
load_basedorLoadBased - RoundRobinSelector:
round_robinorRoundRobin
For example:
cargo run -- metasrv start --selector round_robin
cargo run -- metasrv start --selector RoundRobin