# Add, Change, and Remove Child Servers in Consistent Hashing Mode

In consistent hashing mode, you can add or remove child servers, and change the weight of a child server, without reindexing all your content. This process uses the `EngineManagement` action and the `DREREDISTRIBUTE` index action to change your child server arrangement and redistribute the data respectively.

When the DIH receives a `DREREDISTRIBUTE` index action, it checks whether redistribution is required. If it is, the DIH remaps the virtual nodes, and automatically sends export and add index actions to its child servers to redistribute the associated content.

NOTE: DIH can process only one `DREREDISTRIBUTE` index action at the same time. If it starts to process a second `DREREDISTRIBUTE` index action in the queue before all child servers have finished redistributing the content, the second `DREREDISTRIBUTE` index action returns the `Unavailable` error code and does not run.

## Add a New Child Server

Use the following procedure to add a new child server in consistent hashing mode.

To add a child server

1. Send the `EngineManagement` action to the DIH ACI port. Set the `EngineAction` parameter to `Add`, and set `Host` and `Port` to the host and port of the new child server. For example:

       action=EngineManagement&EngineAction=Add&Host=Child3&Port=9100

   You can also add a new child server to the last listed existing mirror group by setting the `Group` parameter in the `EngineManagement` action to the ID of the group.

2. Send the `DREREDISTRIBUTE` index action to the DIH index port. This index action checks whether redistribution is required, and runs the export and indexing process.

       http://12.3.4.56:9071/DREREDISTRIBUTE

## Change the Weight of a Child Server

Use the following procedure to change the weight of a child server in consistent hashing mode.

To change the weight of a child server

1. Send the `EngineManagement` action to the DIH ACI port. Set the `EngineAction` parameter to `Edit`, set `ID` to the ID number of the child server in the DIH configuration file, and set `Weight` to the new weight for this child server. For example:

       action=EngineManagement&EngineAction=Edit&ID=3&Weight=5

2. Send the `DREREDISTRIBUTE` index action to the DIH index port to redistribute the index data between child servers according to the new weighting.

       http://12.3.4.56:9071/DREREDISTRIBUTE

## Remove a Child Server

Use the following procedure to remove a child server group in consistent hashing mode. You cannot remove a group that has virtual nodes assigned, and you can remove only whole groups of servers.

To remove a child server

1. Use the `EngineManagement` action to set the weight for the child server to zero. Set the `EngineAction` parameter to `Edit`, set `ID` to the ID number of the child server in the DIH configuration file, and set `Weight` to `0` (zero).

       action=EngineManagement&EngineAction=Edit&ID=3&Weight=0

2. Send the `DREREDISTRIBUTE` index action to the DIH index port to redistribute the index data between child servers according to the new weighting.

       http://12.3.4.56:9071/DREREDISTRIBUTE

   This index action removes all the virtual nodes from the child server. DIH continues to send any mirrored index actions (such as `DRESYNC` and `DRECOMPACT`) to this child server until you remove it completely.

3. After the redistribution index action is complete, send the `EngineManagement` action again. Set the `EngineAction` parameter to `Remove`, and set `Group` to the ID of the group.

_FT_HTML5_bannerTitle.htm