> For the complete documentation index, see [llms.txt](https://docs.starrocks.io/llms.txt). This page is also available as Markdown at its `.md` URL.

# Scale in and out

This topic describes how to scale in and out the node of StarRocks.

## Scale FE in and out[​](#scale-fe-in-and-out "Direct link to Scale FE in and out")

StarRocks has two types of FE nodes: Follower and Observer. Followers are involved in election voting and writing. Observers are only used to synchronize logs and extend read performance.

> * The number of follower FEs (including leader) must be odd, and it is recommended to deploy 3 of them to form a High Availability (HA) mode.
> * When the FE is in high availability deployment (1 leader, 2 followers), it is recommended to add Observer FEs for better read performance.

### Scale FE out[​](#scale-fe-out "Direct link to Scale FE out")

After deploying the FE node and starting the service, run the following command to scale FE out.

```sql
alter system add follower "fe_host:edit_log_port";
alter system add observer "fe_host:edit_log_port";

```

### Scale FE in[​](#scale-fe-in "Direct link to Scale FE in")

FE scale-in is similar to the scale-out. Run the following command to scale FE in.

```sql
alter system drop follower "fe_host:edit_log_port";
alter system drop observer "fe_host:edit_log_port";

```

After the expansion and contraction, you can view the node information by running `show proc '/frontends';`.

## Scale BE in and out[​](#scale-be-in-and-out "Direct link to Scale BE in and out")

StarRocks will automatically perform load-balancing after BE's are scaled in or out without affecting the overall performance.

When you add a new BE node, the system's Tablet Scheduler will detect the new node and its low load. It will then start moving tablets from high-load BE nodes to the new, low-load BE node to ensure an even distribution of data and load across the entire cluster.

The balancing process is based on a loadScore calculated for each BE, which considers both disk utilization and replica count. The system aims to move tablets from nodes with a higher loadScore to nodes with a lower loadScore.

You can check the FE configuration parameter `tablet_sched_disable_balance` to ensure that automatic balancing is not disabled (the parameter is false by default, which means that tablet balancing is enabled by default). More details are in the [manage replica docs](https://docs.starrocks.io/docs/administration/management/resource_management/Replica.md).

### Scale BE out[​](#scale-be-out "Direct link to Scale BE out")

Run the following command to scale BE out.

```sql
alter system add backend 'be_host:be_heartbeat_service_port';

```

Run the following command to check the BE status.

```sql
show proc '/backends';

```

### Scale BE in[​](#scale-be-in "Direct link to Scale BE in")

There are two ways to scale in a BE node – `DROP` and `DECOMMISSION`.

`DROP` will delete the BE node immediately, and the lost duplicates will be made up by FE scheduling. `DECOMMISSION` will make sure the duplicates are made up first, and then drop the BE node. `DECOMMISSION` is a bit more friendly and is recommended for BE scale-in.

The commands of both methods are similar:

* `alter system decommission backend "be_host:be_heartbeat_service_port";`
* `alter system drop backend "be_host:be_heartbeat_service_port";`

Drop backend is a dangerous operation, so you need to confirm it twice before executing it

* `alter system drop backend "be_host:be_heartbeat_service_port";`

## Scale CN in and out[​](#scale-cn-in-and-out "Direct link to Scale CN in and out")

### Scale CN out[​](#scale-cn-out "Direct link to Scale CN out")

Run the following command to scale CN out.

```sql
ALTER SYSTEM ADD COMPUTE NODE "cn_host:cn_heartbeat_service_port";

```

Run the following command to check the CN status.

```sql
SHOW PROC '/compute_nodes';

```

### Scale CN in[​](#scale-cn-in "Direct link to Scale CN in")

CN scale-in is similar to the scale-out. Run the following command to scale CN in.

```sql
ALTER SYSTEM DROP COMPUTE NODE "cn_host:cn_heartbeat_service_port";

```

You can view the node information by running `SHOW PROC '/compute_nodes';`.
