# Engine Management in DIH

In the DIH, you can manage child servers (engines) either by directly changing configuration, or by using the `EngineManagement` action. If you change the configuration, you must restart the DIH, while the `EngineManagement` action allows you to perform the following administrative tasks while the server is running:

- add and remove child servers in DIH

- change the weight of a child server

- enable or disable a child server

- enable or disable polling of a child server

- show the status of child servers

## Add and Remove Child Servers

In some distribution modes, you can add child servers by setting `EngineAction` to `Add`, and specifying the host and port. You cannot add child servers in `DistributeByReference` mode (except when you are using consistent hashing), `DistributeByDate` mode, or `RoundRobin` mode. When you add the child server, you can also set the `UpdateOnly`, `Weight`, and `Polling` options for the child server. For more details about these options, see Edit a Child Server .

You can create groups of identical child servers, so that DIH indexes the same documents to all the servers in the group. When you use the `EngineManagement` action to add a server, by default DIH creates a new server group. You can optionally add it to the last existing group instead.

If you are using consistent hashing mode, you can also remove child servers. Setting `EngineAction` to `Remove` removes the whole server group. You can only remove a server group if there are no virtual nodes assigned to it. Use the `EngineManagement` action to set the weight for that group to zero and then use the `DREREDISTRIBUTE` index action to redistribute the virtual nodes. You can then use the `EngineManagement` action to remove the server group.

## Edit a Child Server

You can set `EngineAction` to `Edit` to change the `UpdateOnly`, `Weight`, and `Polling` configuration parameters, and to enable or disable the child server.

- UpdateOnly. Child servers that have the `UpdateOnly` option do not receive new documents, but they still receive index actions for deduplication, replacing data, or deleting documents. This option might be useful if a child server is almost full. You can also use it if you do not want to use a child server for indexing and querying at the same time. In this case, you can set the child server to `UpdateOnly` when you want to use it for querying, so that it still receives updates to existing documents, but does not receive new content for indexing.

  NOTE: You can use the `UpdateOnly` option with simple distribution mode, DistributeSendMinimal, and Batch mode. In batch mode, DIH does not send index actions for deduplication (only for replacing and deleting data).

- Weight. The server weight is the relative proportion of documents that you want to index into that server. This option is available in simple distribution mode, DistributeSendMinimal, and consistent hashing distribution modes. You might want to use weights if your child servers have different capabilities.

  You might want to weight your child servers differently if one has a much more powerful CPU than the other, or if the child servers are tiered DIH servers that have different numbers of children.

  When you are using server groups, the weight for each server in the group must be the same. If you set different values for different servers, DIH uses the weight from the last server in the group.

- Polling. By default, DIH polls child servers until they have finished indexing. If the indexing status is not important, you can set `Polling` to `False` to stop polling. In this case, DIH checks that the child server receives the document, and then stops polling.

## Enable or Disable a Child Server

When you disable a child server, DIH queues all index actions for that server instead of sending them instantly. You might want to disable a child server if you know that it is not running, so that DIH does not waste resources attempting to index data into that child server. You can also use this option when you are performing maintenance and you do not want to index data to that child server.

When you enable the server again, DIH sends the queued operations.

_FT_HTML5_bannerTitle.htm