[[modules-gateway]]
== Local Gateway

The local gateway module stores the cluster state and shard data across full
cluster restarts.

The following _static_ settings, which must be set on every master node,
control how long a freshly elected master should wait before it tries to
recover the cluster state and the cluster's data:

`gateway.expected_nodes`::

    The number of (data or master) nodes that are expected to be in the cluster.
    Recovery of local shards will start as soon as the expected number of
    nodes have joined the cluster. Defaults to `0`

`gateway.expected_master_nodes`::

    The number of master nodes that are expected to be in the cluster.
    Recovery of local shards will start as soon as the expected number of
    master nodes have joined the cluster. Defaults to `0`

`gateway.expected_data_nodes`::

    The number of data nodes that are expected to be in the cluster.
    Recovery of local shards will start as soon as the expected number of
    data nodes have joined the cluster. Defaults to `0`

`gateway.recover_after_time`::

    If the expected number of nodes is not achieved, the recovery process waits
    for the configured amount of time before trying to recover regardless.
    Defaults to `5m` if one of the `expected_nodes` settings is configured.

Once the `recover_after_time` duration has timed out, recovery will start
as long as the following conditions are met:

`gateway.recover_after_nodes`::

    Recover as long as this many data or master nodes have joined the cluster.

`gateway.recover_after_master_nodes`::

    Recover as long as this many master nodes have joined the cluster.

`gateway.recover_after_data_nodes`::

    Recover as long as this many data nodes have joined the cluster.

NOTE: These settings only take effect on a full cluster restart.

[[modules-gateway-dangling-indices]]
=== Dangling indices

When a node joins the cluster, any shards stored in its local data
directory which do not already exist in the cluster will be imported into the 
cluster. This functionality is intended as a best effort to help users who 
lose all master nodes. If a new master node is started which is unaware of 
the other indices in the cluster, adding the old nodes will cause the old 
indices to be imported, instead of being deleted.