Skip to content
Snippets Groups Projects
Commit 63692cca authored by Konstantin Osipov's avatar Konstantin Osipov
Browse files

Update the manual and the configuration file

Update the manual and the configuration file
to reflect the new WAL writer architecture.
parent 14825483
No related merge requests found
......@@ -68,9 +68,8 @@ snap_io_rate_limit=0.0, ro
# Write no more rows in WAL
rows_per_wal=500000, ro
# Size of the WAL writer request queue: how many outstanding
# requests for write to disk it can have.
# Rule of thumb is to set this to the average connection count.
# OBSOLETE
# Starting from 1.4.5, this variable has no effect.
wal_writer_inbox_size=16384, ro
# Defines fiber/data synchronization fsync(2) policy:
......
......@@ -529,22 +529,6 @@ tarantool_box: primary@sessions pri:33013 sec:33014 adm:33015</programlisting>
locations and moving snapshots to a separate disk.</entry>
</row>
<row>
<entry xml:id="wal_writer_inbox_size" xreflabel="wal_writer_inbox_size">wal_writer_inbox_size</entry>
<entry>integer</entry>
<entry>128</entry>
<entry>no</entry>
<entry>no</entry>
<entry>WAL writer is a separate process whose sole
purpose is to write the change log to disk. Every
incoming data change is sent to this process and
queued for write. This parameter affects the size of the
user space buffer that WAL writer uses to queue
write requests. By default, up to 128 client
connections can have pending updates waiting on disk.
</entry>
</row>
<row>
<entry>wal_fsync_delay</entry>
<entry>float</entry>
......
......@@ -45,7 +45,7 @@ example:
</para></listitem>
<listitem><para>
A message is sent to a separate <quote>wal_writer</quote>
process requesting that the change is recorded in the WAL.
thread requesting that the change is recorded in the WAL.
The fiber associate with the current connection is scheduled
off CPU until an acknowledgment is received from the WAL
writer.
......@@ -60,24 +60,15 @@ example:
</para>
<para>
Communication between master and WAL writer processes is asynchronous.
It is implemented using 'inbox' paradigm, similar to
process inboxes in Erlang, from which it was derived.
Asynchronous but reliable message passing between processes
allows Tarantool to continue handling requests regardless of disk
throughput. SELECT performance, provided SELECTs are run in their
own connections, is unaffected by disk load.
Communication between master and WAL writer threads is asynchronous.
It is implemented using an asynchronous FIFO queue.
Asynchronous but reliable message passing between the master
and WAL writer threads allows Tarantool to continue handling
requests regardless of disk throughput. SELECT performance,
provided SELECTs are run in their own connections, is unaffected
by disk load.
</para>
<para>
The size of each process' inbox is fixed. In particular,
the WAL writer inbox can hold only <olink targetptr="wal_writer_inbox_size"/>
messages. This can pose a practical problem when thousands of
connections perform updates &mdash; the WAL writer inbox can become full.
Once this happens, the server aborts any update for which
sending a WAL message has failed with <olink targetptr="ER_WAL_IO"/>
error.
</para>
</section>
<!--
vim: tw=66 syntax=docbk
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment