# Round Robin Indexing

You can use round robin indexing with the DIH to maximize indexing performance. This option rotates indexing over several child servers, so that only one DIH indexes at a time.

A round robin DIH forms part of a larger architecture that achieves extremely high performance and low search latency. IDOL Server provides the fastest queries when it is not indexing, and indexes fastest when it is not being queried. When you configure indexing for round robin mode, DIH suspends query handling for a specific child server. This server then has optimal indexing, and only one child server receives most incoming documents.

If you have the DAH installed, you can configure the DAH to divert search queries to other IDOL servers to allow the active server to devote all its resources to the indexing task.

Use the `[DAHServerN]` section options to configure child servers for powerup and shutdown when round robin indexing rollover occurs. This option optimizes both query handling and data indexing across a group of child servers.

For example, DAH disables queries to the first server, which optimizes indexing speed for that server. Query handling is optimal for the other servers, which are not indexing data. The first server indexes data during this period, before DAH queries it again.

NOTE: You can use round robin mode without installing the DAH to divert search queries from the active server. However, when the active server must perform search and indexing tasks simultaneously, it compromises performance for both.

To enable round robin mode, set `RoundRobinMode` to `True` in the `[Server]` section of the DIH configuration file. You must complete the following sections in the DIH configuration file (DAH portions apply only if you have installed it):

    [Server]
    Port=9070
    DIHPort=9071
    DateFormatCSVs=SHORTMONTH#SD+#SYYYY,DD/MM/YYYY,YYYY/MM/DD,YYYY-MM-DD
    MirrorMode=False
    RoundRobinMode=True

    [DistributionIDOLServers]
    Number=3

    [IDOLServer0]
    Host=localhost
    Port=9100

    [IDOLServer1]
    Host=localhost
    Port=9200

    [IDOLServer2]
    Host=localhost
    Port=9300

    [RoundRobinMode]
    ServerImmediateStart=2
    NextServerStartTime=00:00
    NextServerStartDate=2006/10/20
    PeriodInDay=1

    [DAHServer0]
    Host=dahhost0
    Port=9060
    ShutDownEnginePeriods=0,-1

    [DAHServer1]
    Host=dahhost1
    Port=9160
    StartUpEnginePeriods=-2

In this example, the DIH immediately starts to send index data to IDOL Server 2. Indexing switches to the next server, IDOL Server 0, on 20 October 2006 at 00:00. After this period, DIH dedicates one day for each child server before it rolls over to the next. To optimize data indexing when the rollover occurs, and to suspend query handling, it shuts down the DAH child servers that indexed data yesterday and today. At the same time, it powers up the DAH child server that indexed data the day before yesterday.

NOTE: You can use `RoundRobinMode` only when `MirrorMode` is set to `False`. DIH will not start if `RoundRobinMode` and `MirrorMode` are both set to `True`.

_FT_HTML5_bannerTitle.htm