Skip to content

Commit dd7f600

Browse files
committed
config: add wal and snapshot sections
1 parent 04b2319 commit dd7f600

File tree

3 files changed

+260
-13
lines changed

3 files changed

+260
-13
lines changed

doc/enterprise/wal_extensions.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@ For example, you can enable storing an old and new tuple for each CRUD operation
88
This information might be helpful for implementing a CDC (Change Data Capture) utility
99
that transforms a data replication stream.
1010

11-
1211
.. _wal_extensions_configuration:
1312

1413
Configuration
1514
-------------
1615

17-
To configure WAL extensions, use the ``wal_ext`` :ref:`configuration property <index-book_cfg>`.
16+
To configure WAL extensions, use the ``wal.ext`` :ref:`configuration property <configuration_reference_wal>`.
1817
Inside the ``wal_ext`` block, you can enable storing old and new tuples as follows:
1918

2019
* Set the ``old`` and ``new`` options to ``true`` to store old and new tuples in a write-ahead log for all spaces.

doc/reference/configuration/cfg_binary_logging_snapshots.rst

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
Since version 1.7.4.
3737

3838
The maximum number of bytes in a single write-ahead log file.
39-
When a request would cause an .xlog file to become larger than
40-
``wal_max_size``, Tarantool creates another WAL file.
39+
When a request would cause an ``.xlog`` file to become larger than
40+
``wal_max_size``, Tarantool creates a new WAL file.
4141

4242
| Type: integer
4343
| Default: 268435456 (256 * 1024 * 1024) bytes
@@ -58,7 +58,7 @@
5858
locations and moving snapshots to a separate disk.
5959
The limit also affects what
6060
:ref:`box.stat.vinyl().regulator <box_introspection-box_stat_vinyl_regulator>`
61-
may show for the write rate of dumps to .run and .index files.
61+
may show for the write rate of dumps to ``.run`` and ``.index`` files.
6262

6363
| Type: float
6464
| Default: null
@@ -73,12 +73,14 @@
7373

7474
Specify fiber-WAL-disk synchronization mode as:
7575

76-
* ``none``: write-ahead log is not maintained.
77-
A node with ``wal_mode = none`` can't be replication master;
78-
* ``write``: :ref:`fibers <fiber-fibers>` wait for their data to be written to
79-
the write-ahead log (no :manpage:`fsync(2)`);
80-
* ``fsync``: fibers wait for their data, :manpage:`fsync(2)`
81-
follows each :manpage:`write(2)`;
76+
* ``none``: write-ahead log is not maintained.
77+
A node with ``wal_mode = none`` can't be replication master.
78+
79+
* ``write``: :ref:`fibers <fiber-fibers>` wait for their data to be written to
80+
the write-ahead log (no :manpage:`fsync(2)`).
81+
82+
* ``fsync``: fibers wait for their data, :manpage:`fsync(2)`
83+
follows each :manpage:`write(2)`.
8284

8385
| Type: string
8486
| Default: "write"
@@ -129,7 +131,7 @@
129131
Since version :doc:`2.6.3 </release/2.6.3>`.
130132

131133
The delay (in seconds) used to prevent the :ref:`Tarantool garbage collector <cfg_checkpoint_daemon-garbage-collector>`
132-
from immediately removing :ref:`write-ahead log<internals-wal>` files after a node restart.
134+
from immediately removing :ref:`write-ahead log <internals-wal>` files after a node restart.
133135
This delay eliminates possible erroneous situations when the master deletes WALs
134136
needed by :ref:`replicas <replication-roles>` after restart.
135137
As a consequence, replicas sync with the master faster after its restart and
@@ -141,7 +143,7 @@
141143
.. NOTE::
142144

143145
The ``wal_cleanup_delay`` option has no effect on nodes running as
144-
:ref:`anonymous replicas<cfg_replication-replication_anon>`.
146+
:ref:`anonymous replicas <cfg_replication-replication_anon>`.
145147

146148
| Type: number
147149
| Default: 14400 seconds

doc/reference/configuration/configuration_reference.rst

Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1866,3 +1866,249 @@ The ``security`` section defines configuration parameters related to various sec
18661866
| Type: boolean
18671867
| Default: false
18681868
| Environment variable: TT_SECURITY_SECURE_ERASING
1869+
1870+
.. _configuration_reference_snapshot:
1871+
1872+
snapshot
1873+
--------
1874+
1875+
The ``snapshot`` section defines configuration parameters related to
1876+
1877+
.. NOTE::
1878+
1879+
``snapshot`` can be defined in any :ref:`scope <configuration_scopes>`.
1880+
1881+
- :ref:`snapshot.by.interval <configuration_reference_snapshot_by_interval>`
1882+
- :ref:`snapshot.by.wal_size <configuration_reference_snapshot_by_wal_size>`
1883+
- :ref:`snapshot.count <configuration_reference_snapshot_count>`
1884+
- :ref:`snapshot.dir <configuration_reference_snapshot_dir>`
1885+
- :ref:`snapshot.snap_io_rate_limit <configuration_reference_snapshot_snap_io_rate_limit>`
1886+
1887+
.. _configuration_reference_snapshot_by_interval:
1888+
1889+
.. confval:: snapshot.by.interval
1890+
1891+
Description
1892+
1893+
|
1894+
| Type: number
1895+
| Default: 3600
1896+
| Environment variable: TT_SNAPSHOT_BY_INTERVAL
1897+
1898+
.. _configuration_reference_snapshot_by_wal_size:
1899+
1900+
.. confval:: snapshot.by.wal_size
1901+
1902+
Description
1903+
1904+
|
1905+
| Type: number
1906+
| Default: 3600
1907+
| Environment variable: TT_SNAPSHOT_BY_WAL_SIZE
1908+
1909+
.. _configuration_reference_snapshot_count:
1910+
1911+
.. confval:: snapshot.count
1912+
1913+
Description
1914+
1915+
|
1916+
| Type: integer
1917+
| Default: 2
1918+
| Environment variable: TT_SNAPSHOT_COUNT
1919+
1920+
.. _configuration_reference_snapshot_dir:
1921+
1922+
.. confval:: snapshot.dir
1923+
1924+
Description
1925+
1926+
|
1927+
| Type: string
1928+
| Default: 'var/lib/{{ instance_name }}'
1929+
| Environment variable: TT_SNAPSHOT_DIR
1930+
1931+
1932+
.. _configuration_reference_snapshot_snap_io_rate_limit:
1933+
1934+
.. confval:: snapshot.snap_io_rate_limit
1935+
1936+
Reduce the throttling effect of :doc:`box.snapshot() </reference/reference_lua/box_snapshot>` on
1937+
INSERT/UPDATE/DELETE performance by setting a limit on how many
1938+
megabytes per second it can write to disk. The same can be
1939+
achieved by splitting :ref:`wal.dir <configuration_reference_wal_dir>` and
1940+
:ref:`memtx_dir <cfg_basic-memtx_dir>`
1941+
locations and moving snapshots to a separate disk.
1942+
The limit also affects what
1943+
:ref:`box.stat.vinyl().regulator <box_introspection-box_stat_vinyl_regulator>`
1944+
may show for the write rate of dumps to ``.run`` and ``.index`` files.
1945+
1946+
|
1947+
| Type: number
1948+
| Default: box.NULL
1949+
| Environment variable: TT_SNAPSHOT_SNAP_IO_RATE_LIMIT
1950+
1951+
1952+
.. _configuration_reference_wal:
1953+
1954+
wal
1955+
---
1956+
1957+
The ``wal`` section defines configuration parameters related to
1958+
1959+
.. NOTE::
1960+
1961+
``wal`` can be defined in any :ref:`scope <configuration_scopes>`.
1962+
1963+
- :ref:`wal.cleanup_delay <configuration_reference_wal_cleanup_delay>`
1964+
- :ref:`wal.dir <configuration_reference_wal_dir>`
1965+
- :ref:`wal.dir_rescan_delay <configuration_reference_wal_dir_rescan_delay>`
1966+
- :ref:`wal.ext.new <configuration_reference_wal_ext_new>`
1967+
- :ref:`wal.ext.old <configuration_reference_wal_ext_old>`
1968+
- :ref:`wal.ext.spaces <configuration_reference_wal_ext_spaces>`
1969+
- :ref:`wal.wal_max_size <configuration_reference_wal_max_size>`
1970+
- :ref:`wal.mode <configuration_reference_wal_mode>`
1971+
- :ref:`wal.queue_max_size <configuration_reference_wal_queue_max_size>`
1972+
1973+
.. _configuration_reference_wal_cleanup_delay:
1974+
1975+
.. confval:: wal.cleanup_delay
1976+
1977+
The delay in seconds used to prevent the :ref:`Tarantool garbage collector <cfg_checkpoint_daemon-garbage-collector>`
1978+
from immediately removing :ref:`write-ahead log <internals-wal>` files after a node restart.
1979+
This delay eliminates possible erroneous situations when the master deletes WALs
1980+
needed by :ref:`replicas <replication-roles>` after restart.
1981+
As a consequence, replicas sync with the master faster after its restart and
1982+
don't need to download all the data again.
1983+
1984+
Once all the nodes in the replica set are up and running,
1985+
automatic cleanup is started again even if ``wal.cleanup_delay`` has not expired.
1986+
1987+
.. NOTE::
1988+
1989+
The option has no effect on nodes running as
1990+
:ref:`anonymous replicas <cfg_replication-replication_anon>`.
1991+
1992+
|
1993+
| Type: number
1994+
| Default: 14400
1995+
| Environment variable: TT_WAL_CLEANUP_DELAY
1996+
1997+
.. _configuration_reference_wal_dir:
1998+
1999+
.. confval:: wal.dir
2000+
2001+
A directory where write-ahead log (.xlog) files are stored. Can be relative
2002+
to :ref:`work_dir <cfg_basic-work_dir>`. Sometimes ``wal_dir`` and
2003+
:ref:`memtx_dir <cfg_basic-memtx_dir>` are specified with different values, so
2004+
that write-ahead log files and snapshot files can be stored on different
2005+
disks. If not specified, defaults to ``work_dir``.
2006+
2007+
|
2008+
| Type: string
2009+
| Default: 'var/lib/{{ instance_name }}'
2010+
| Environment variable: TT_WAL_DIR
2011+
2012+
.. _configuration_reference_wal_dir_rescan_delay:
2013+
2014+
.. confval:: wal.dir_rescan_delay
2015+
2016+
Number of seconds between periodic scans of the write-ahead-log
2017+
file directory, when checking for changes to write-ahead-log
2018+
files for the sake of :ref:`replication <replication>` or :ref:`hot standby <index-hot_standby>`.
2019+
2020+
|
2021+
| Type: number
2022+
| Default: 2
2023+
| Environment variable: TT_WAL_DIR_RESCAN_DELAY
2024+
2025+
.. _configuration_reference_wal_ext_new:
2026+
2027+
.. confval:: wal.ext_new
2028+
2029+
(**Enterprise Edition only**)
2030+
2031+
Description
2032+
2033+
|
2034+
| Type: boolean
2035+
| Default: nil
2036+
| Environment variable: TT_WAL_EXT_NEW
2037+
2038+
.. _configuration_reference_wal_ext_old:
2039+
2040+
.. confval:: wal.ext_old
2041+
2042+
(**Enterprise Edition only**)
2043+
Description
2044+
2045+
|
2046+
| Type: boolean
2047+
| Default: nil
2048+
| Environment variable: TT_WAL_EXT_OLD
2049+
2050+
.. _configuration_reference_wal_ext_spaces:
2051+
2052+
.. confval:: wal.ext_spaces
2053+
2054+
(**Enterprise Edition only**)
2055+
Description
2056+
2057+
|
2058+
| Type: map
2059+
| Default: nil
2060+
| Environment variable: TT_WAL_EXT_SPACES
2061+
2062+
2063+
.. _configuration_reference_wal_max_size:
2064+
2065+
.. confval:: wal.wal_max_size
2066+
2067+
The maximum number of bytes in a single write-ahead log file.
2068+
When a request would cause an ``.xlog`` file to become larger than
2069+
``wal_max_size``, Tarantool creates a new WAL file.
2070+
2071+
|
2072+
| Type: integer
2073+
| Default: 268435456
2074+
| Environment variable: TT_WAL_MAX_SIZE
2075+
2076+
.. _configuration_reference_wal_mode:
2077+
2078+
.. confval:: wal.mode
2079+
2080+
Specify fiber-WAL-disk synchronization mode as:
2081+
2082+
* ``none``: write-ahead log is not maintained.
2083+
A node with ``wal.mode = none`` can't be replication master.
2084+
2085+
* ``write``: :ref:`fibers <fiber-fibers>` wait for their data to be written to
2086+
the write-ahead log (no :manpage:`fsync(2)`).
2087+
2088+
* ``fsync``: fibers wait for their data, :manpage:`fsync(2)`
2089+
follows each :manpage:`write(2)`.
2090+
2091+
|
2092+
| Type: string
2093+
| Default: 'write'
2094+
| Environment variable: TT_WAL_MODE
2095+
2096+
.. _configuration_reference_wal_queue_max_size:
2097+
2098+
.. confval:: wal.queue_max_size
2099+
2100+
The size of the queue in bytes used by a :ref:`replica <replication-roles>` to submit
2101+
new transactions to a :ref:`write-ahead log<internals-wal>` (WAL).
2102+
This option helps limit the rate at which a replica submits transactions to the WAL.
2103+
Limiting the queue size might be useful when a replica is trying to sync with a master and
2104+
reads new transactions faster than writing them to the WAL.
2105+
2106+
.. NOTE::
2107+
2108+
You might consider increasing the ``wal.queue_max_size`` value in case of
2109+
large tuples (approximately one megabyte or larger).
2110+
2111+
|
2112+
| Type: integer
2113+
| Default: 16777216
2114+
| Environment variable: TT_WAL_QUEUE_MAX_SIZE

0 commit comments

Comments
 (0)