[[index-modules-translog]]
== Translog

Each shard has a transaction log or write ahead log associated with it.
It allows to guarantee that when an index/delete operation occurs, it is
applied atomically, while not "committing" the internal Lucene index for
each request. A flush ("commit") still happens based on several
parameters:

`index.translog.flush_threshold_ops`::

After how many operations to flush. Defaults to `unlimited`.

`index.translog.flush_threshold_size`:: 

Once the translog hits this size, a flush will happen. Defaults to `512mb`.

`index.translog.flush_threshold_period`:: 

The period with no flush happening to force a flush. Defaults to `30m`.

`index.translog.interval`:: 

How often to check if a flush is needed, randomized
between the interval value and 2x the interval value. Defaults to `5s`.

`index.gateway.local.sync`::

How often the translog is ++fsync++ed to disk. Defaults to `5s`.


Note: these parameters except `index.gateway.local.sync` can be updated at runtime using the Index
Settings Update API (for example, these numbers can be increased when
executing bulk updates to support higher TPS)
