Search code examples
databasedistributed-databaseyugabytedb

Rebalancing rate when new node is added


When a new node is added, we see that it is starting to receive new tablets (in the http://:7000/tablet-servers page) and the system is rebalancing. But the default rate seems low. Are there any knobs to determine this rate?


Solution

  • The rebalance in YugaByte DB is rate limited.

    1. One of the parameters that governs this behavior is the yb-tserver gflag remote_bootstrap_rate_limit_bytes_per_sec which defaults to 256MB/sec and is the maximum transmission rate (inbound + outbound) related to rebalance that any one server (yb-tserver) may do.

    To inspect the current setting on a yb-tserver you can try this:

    $ curl -s 10.150.0.20:9000/varz | grep remote_bootstrap_rate
    --remote_bootstrap_rate_limit_bytes_per_sec=268435456
    

    This particular param can also be changed on the fly without needing a yb-tserver restart. For example to set the rate to 512MB/sec.

    bin/yb-ts-cli --server_address=$TSERVER_IP:9100 set_flag --force remote_boostrap_rate_limit_bytes_per_sec 536870912
    
    1. A second aspect of this is the cluster wide global settings on how many tablet rebalances can happen simultaneously in the system. These are governed by a few yb-master gflags.
    $ bin/yb-ts-cli --server_address=$MASTER_IP:7100 set_flag -force load_balancer_max_concurrent_adds 3
    $ bin/yb-ts-cli --server_address=$MASTER_IP:7100 set_flag -force load_balancer_max_over_replicated_tablets 3
    $ bin/yb-ts-cli --server_address=$MASTER_IP:7100 set_flag -force load_balancer_max_concurrent_tablet_remote_bootstraps 3