Skip to main content
Version: 1.0

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_based or LeaseBased
  • LoadBasedSelector: load_based or LoadBased
  • RoundRobinSelector: round_robin or RoundRobin

For example:

cargo run -- metasrv start --selector round_robin
cargo run -- metasrv start --selector RoundRobin