From 63692ccacf464757638708b8ec7ed6c517d48b58 Mon Sep 17 00:00:00 2001 From: Konstantin Osipov <kostja@tarantool.org> Date: Wed, 25 Apr 2012 23:48:11 +0400 Subject: [PATCH] Update the manual and the configuration file Update the manual and the configuration file to reflect the new WAL writer architecture. --- cfg/core_cfg.cfg_tmpl | 5 ++--- doc/user/configuration-reference.xml | 16 ---------------- doc/user/persistence-architecture.xml | 25 ++++++++----------------- 3 files changed, 10 insertions(+), 36 deletions(-) diff --git a/cfg/core_cfg.cfg_tmpl b/cfg/core_cfg.cfg_tmpl index 3a019a52e2..d030d1217a 100644 --- a/cfg/core_cfg.cfg_tmpl +++ b/cfg/core_cfg.cfg_tmpl @@ -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: diff --git a/doc/user/configuration-reference.xml b/doc/user/configuration-reference.xml index 311ab5cf7b..4bbb6a7977 100644 --- a/doc/user/configuration-reference.xml +++ b/doc/user/configuration-reference.xml @@ -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> diff --git a/doc/user/persistence-architecture.xml b/doc/user/persistence-architecture.xml index 2147c53658..5db4d1f3f0 100644 --- a/doc/user/persistence-architecture.xml +++ b/doc/user/persistence-architecture.xml @@ -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 — 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 -- GitLab