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