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 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.

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.