Skip to content

Commit 8d930d9

Browse files
committed
config: add wal and snapshot sections
1 parent c9e9c81 commit 8d930d9

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
@@ -2174,3 +2174,249 @@ The ``security`` section defines configuration parameters related to various sec
21742174
| Type: boolean
21752175
| Default: false
21762176
| Environment variable: TT_SECURITY_SECURE_ERASING
2177+
2178+
.. _configuration_reference_snapshot:
2179+
2180+
snapshot
2181+
--------
2182+
2183+
The ``snapshot`` section defines configuration parameters related to
2184+
2185+
.. NOTE::
2186+
2187+
``snapshot`` can be defined in any :ref:`scope <configuration_scopes>`.
2188+
2189+
- :ref:`snapshot.by.interval <configuration_reference_snapshot_by_interval>`
2190+
- :ref:`snapshot.by.wal_size <configuration_reference_snapshot_by_wal_size>`
2191+
- :ref:`snapshot.count <configuration_reference_snapshot_count>`
2192+
- :ref:`snapshot.dir <configuration_reference_snapshot_dir>`
2193+
- :ref:`snapshot.snap_io_rate_limit <configuration_reference_snapshot_snap_io_rate_limit>`
2194+
2195+
.. _configuration_reference_snapshot_by_interval:
2196+
2197+
.. confval:: snapshot.by.interval
2198+
2199+
Description
2200+
2201+
|
2202+
| Type: number
2203+
| Default: 3600
2204+
| Environment variable: TT_SNAPSHOT_BY_INTERVAL
2205+
2206+
.. _configuration_reference_snapshot_by_wal_size:
2207+
2208+
.. confval:: snapshot.by.wal_size
2209+
2210+
Description
2211+
2212+
|
2213+
| Type: number
2214+
| Default: 3600
2215+
| Environment variable: TT_SNAPSHOT_BY_WAL_SIZE
2216+
2217+
.. _configuration_reference_snapshot_count:
2218+
2219+
.. confval:: snapshot.count
2220+
2221+
Description
2222+
2223+
|
2224+
| Type: integer
2225+
| Default: 2
2226+
| Environment variable: TT_SNAPSHOT_COUNT
2227+
2228+
.. _configuration_reference_snapshot_dir:
2229+
2230+
.. confval:: snapshot.dir
2231+
2232+
Description
2233+
2234+
|
2235+
| Type: string
2236+
| Default: 'var/lib/{{ instance_name }}'
2237+
| Environment variable: TT_SNAPSHOT_DIR
2238+
2239+
2240+
.. _configuration_reference_snapshot_snap_io_rate_limit:
2241+
2242+
.. confval:: snapshot.snap_io_rate_limit
2243+
2244+
Reduce the throttling effect of :doc:`box.snapshot() </reference/reference_lua/box_snapshot>` on
2245+
INSERT/UPDATE/DELETE performance by setting a limit on how many
2246+
megabytes per second it can write to disk. The same can be
2247+
achieved by splitting :ref:`wal.dir <configuration_reference_wal_dir>` and
2248+
:ref:`memtx_dir <cfg_basic-memtx_dir>`
2249+
locations and moving snapshots to a separate disk.
2250+
The limit also affects what
2251+
:ref:`box.stat.vinyl().regulator <box_introspection-box_stat_vinyl_regulator>`
2252+
may show for the write rate of dumps to ``.run`` and ``.index`` files.
2253+
2254+
|
2255+
| Type: number
2256+
| Default: box.NULL
2257+
| Environment variable: TT_SNAPSHOT_SNAP_IO_RATE_LIMIT
2258+
2259+
2260+
.. _configuration_reference_wal:
2261+
2262+
wal
2263+
---
2264+
2265+
The ``wal`` section defines configuration parameters related to
2266+
2267+
.. NOTE::
2268+
2269+
``wal`` can be defined in any :ref:`scope <configuration_scopes>`.
2270+
2271+
- :ref:`wal.cleanup_delay <configuration_reference_wal_cleanup_delay>`
2272+
- :ref:`wal.dir <configuration_reference_wal_dir>`
2273+
- :ref:`wal.dir_rescan_delay <configuration_reference_wal_dir_rescan_delay>`
2274+
- :ref:`wal.ext.new <configuration_reference_wal_ext_new>`
2275+
- :ref:`wal.ext.old <configuration_reference_wal_ext_old>`
2276+
- :ref:`wal.ext.spaces <configuration_reference_wal_ext_spaces>`
2277+
- :ref:`wal.wal_max_size <configuration_reference_wal_max_size>`
2278+
- :ref:`wal.mode <configuration_reference_wal_mode>`
2279+
- :ref:`wal.queue_max_size <configuration_reference_wal_queue_max_size>`
2280+
2281+
.. _configuration_reference_wal_cleanup_delay:
2282+
2283+
.. confval:: wal.cleanup_delay
2284+
2285+
The delay in seconds used to prevent the :ref:`Tarantool garbage collector <cfg_checkpoint_daemon-garbage-collector>`
2286+
from immediately removing :ref:`write-ahead log <internals-wal>` files after a node restart.
2287+
This delay eliminates possible erroneous situations when the master deletes WALs
2288+
needed by :ref:`replicas <replication-roles>` after restart.
2289+
As a consequence, replicas sync with the master faster after its restart and
2290+
don't need to download all the data again.
2291+
2292+
Once all the nodes in the replica set are up and running,
2293+
automatic cleanup is started again even if ``wal.cleanup_delay`` has not expired.
2294+
2295+
.. NOTE::
2296+
2297+
The option has no effect on nodes running as
2298+
:ref:`anonymous replicas <cfg_replication-replication_anon>`.
2299+
2300+
|
2301+
| Type: number
2302+
| Default: 14400
2303+
| Environment variable: TT_WAL_CLEANUP_DELAY
2304+
2305+
.. _configuration_reference_wal_dir:
2306+
2307+
.. confval:: wal.dir
2308+
2309+
A directory where write-ahead log (.xlog) files are stored. Can be relative
2310+
to :ref:`work_dir <cfg_basic-work_dir>`. Sometimes ``wal_dir`` and
2311+
:ref:`memtx_dir <cfg_basic-memtx_dir>` are specified with different values, so
2312+
that write-ahead log files and snapshot files can be stored on different
2313+
disks. If not specified, defaults to ``work_dir``.
2314+
2315+
|
2316+
| Type: string
2317+
| Default: 'var/lib/{{ instance_name }}'
2318+
| Environment variable: TT_WAL_DIR
2319+
2320+
.. _configuration_reference_wal_dir_rescan_delay:
2321+
2322+
.. confval:: wal.dir_rescan_delay
2323+
2324+
Number of seconds between periodic scans of the write-ahead-log
2325+
file directory, when checking for changes to write-ahead-log
2326+
files for the sake of :ref:`replication <replication>` or :ref:`hot standby <index-hot_standby>`.
2327+
2328+
|
2329+
| Type: number
2330+
| Default: 2
2331+
| Environment variable: TT_WAL_DIR_RESCAN_DELAY
2332+
2333+
.. _configuration_reference_wal_ext_new:
2334+
2335+
.. confval:: wal.ext_new
2336+
2337+
(**Enterprise Edition only**)
2338+
2339+
Description
2340+
2341+
|
2342+
| Type: boolean
2343+
| Default: nil
2344+
| Environment variable: TT_WAL_EXT_NEW
2345+
2346+
.. _configuration_reference_wal_ext_old:
2347+
2348+
.. confval:: wal.ext_old
2349+
2350+
(**Enterprise Edition only**)
2351+
Description
2352+
2353+
|
2354+
| Type: boolean
2355+
| Default: nil
2356+
| Environment variable: TT_WAL_EXT_OLD
2357+
2358+
.. _configuration_reference_wal_ext_spaces:
2359+
2360+
.. confval:: wal.ext_spaces
2361+
2362+
(**Enterprise Edition only**)
2363+
Description
2364+
2365+
|
2366+
| Type: map
2367+
| Default: nil
2368+
| Environment variable: TT_WAL_EXT_SPACES
2369+
2370+
2371+
.. _configuration_reference_wal_max_size:
2372+
2373+
.. confval:: wal.wal_max_size
2374+
2375+
The maximum number of bytes in a single write-ahead log file.
2376+
When a request would cause an ``.xlog`` file to become larger than
2377+
``wal_max_size``, Tarantool creates a new WAL file.
2378+
2379+
|
2380+
| Type: integer
2381+
| Default: 268435456
2382+
| Environment variable: TT_WAL_MAX_SIZE
2383+
2384+
.. _configuration_reference_wal_mode:
2385+
2386+
.. confval:: wal.mode
2387+
2388+
Specify fiber-WAL-disk synchronization mode as:
2389+
2390+
* ``none``: write-ahead log is not maintained.
2391+
A node with ``wal.mode = none`` can't be replication master.
2392+
2393+
* ``write``: :ref:`fibers <fiber-fibers>` wait for their data to be written to
2394+
the write-ahead log (no :manpage:`fsync(2)`).
2395+
2396+
* ``fsync``: fibers wait for their data, :manpage:`fsync(2)`
2397+
follows each :manpage:`write(2)`.
2398+
2399+
|
2400+
| Type: string
2401+
| Default: 'write'
2402+
| Environment variable: TT_WAL_MODE
2403+
2404+
.. _configuration_reference_wal_queue_max_size:
2405+
2406+
.. confval:: wal.queue_max_size
2407+
2408+
The size of the queue in bytes used by a :ref:`replica <replication-roles>` to submit
2409+
new transactions to a :ref:`write-ahead log<internals-wal>` (WAL).
2410+
This option helps limit the rate at which a replica submits transactions to the WAL.
2411+
Limiting the queue size might be useful when a replica is trying to sync with a master and
2412+
reads new transactions faster than writing them to the WAL.
2413+
2414+
.. NOTE::
2415+
2416+
You might consider increasing the ``wal.queue_max_size`` value in case of
2417+
large tuples (approximately one megabyte or larger).
2418+
2419+
|
2420+
| Type: integer
2421+
| Default: 16777216
2422+
| Environment variable: TT_WAL_QUEUE_MAX_SIZE

0 commit comments

Comments
 (0)