]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-doc: Sort the tunable variables in alphabetical order
authorAmitay Isaacs <amitay@gmail.com>
Mon, 7 Mar 2016 06:05:11 +0000 (17:05 +1100)
committerAmitay Isaacs <amitay@samba.org>
Thu, 10 Mar 2016 02:34:18 +0000 (03:34 +0100)
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/doc/ctdb-tunables.7.xml

index 6c164f3161f80c6697a4f0e4d6f41383df73036f..a6ef435354510a327b02bad9bc7433bc3f47fe3b 100644 (file)
       <command>getvar</command> commands for more details.
     </para>
 
-    <refsect2>
-      <title>MaxRedirectCount</title>
-      <para>Default: 3</para>
-      <para>
-       If we are not the DMASTER and need to fetch a record across the network
-       we first send the request to the LMASTER after which the record
-       is passed onto the current DMASTER. If the DMASTER changes before
-       the request has reached that node, the request will be passed onto the
-       "next" DMASTER. For very hot records that migrate rapidly across the
-       cluster this can cause a request to "chase" the record for many hops
-       before it catches up with the record.
-
-       this is how many hops we allow trying to chase the DMASTER before we
-       switch back to the LMASTER again to ask for new directions.
-      </para>
-      <para>
-       When chasing a record, this is how many hops we will chase the record
-       for before going back to the LMASTER to ask for new guidance.
-      </para>
-    </refsect2>
+    <para>
+      The tunable variables are listed alphabetically.
+    </para>
 
     <refsect2>
-      <title>SeqnumInterval</title>
-      <para>Default: 1000</para>
-      <para>
-       Some databases have seqnum tracking enabled, so that samba will be able
-       to detect asynchronously when there has been updates to the database.
-       Everytime a database is updated its sequence number is increased.
-      </para>
+      <title>AllowClientDBAttach</title>
+      <para>Default: 1</para>
       <para>
-       This tunable is used to specify in 'ms' how frequently ctdb will
-       send out updates to remote nodes to inform them that the sequence
-       number is increased.
+       When set to 0, clients are not allowed to attach to any databases.
+       This can be used to temporarily block any new processes from
+       attaching to and accessing the databases.
       </para>
     </refsect2>
 
       <title>ControlTimeout</title>
       <para>Default: 60</para>
       <para>
-       This is the default
-       setting for timeout for when sending a control message to either the
-       local or a remote ctdb daemon.
+       This is the default setting for timeout for when sending a
+       control message to either the local or a remote ctdb daemon.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>TraverseTimeout</title>
-      <para>Default: 20</para>
+      <title>DatabaseHashSize</title>
+      <para>Default: 100001</para>
       <para>
-       This setting controls how long we allow a traverse process to run.
-       After this timeout triggers, the main ctdb daemon will abort the
-       traverse if it has not yet finished.
+       Number of the hash chains for the local store of the tdbs that
+       ctdb manages.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>KeepaliveInterval</title>
+      <title>DatabaseMaxDead</title>
       <para>Default: 5</para>
       <para>
-       How often in seconds should the nodes send keepalives to eachother.
+       How many dead records per hashchain in the TDB database do we
+       allow before the freelist needs to be processed.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>KeepaliveLimit</title>
-      <para>Default: 5</para>
+      <title>DBRecordCountWarn</title>
+      <para>Default: 100000</para>
       <para>
-       After how many keepalive intervals without any traffic should a node
-       wait until marking the peer as DISCONNECTED.
+       When set to non-zero, ctdb will log a warning when we try
+       to recover a database with more than this many records. This
+       will produce a warning if a database grows uncontrollably with
+       orphaned records.
       </para>
+    </refsect2>
+
+    <refsect2>
+      <title>DBRecordSizeWarn</title>
+      <para>Default: 10000000</para>
       <para>
-       If a node has hung, it can thus take KeepaliveInterval*(KeepaliveLimit+1)
-       seconds before we determine that the node is DISCONNECTED and that we
-       require a recovery. This limitshould not be set too high since we want
-       a hung node to be detectec, and expunged from the cluster well before
-       common CIFS timeouts (45-90 seconds) kick in.
+       When set to non-zero, ctdb will log a warning when we try to
+       recover a database where a single record is bigger than this. This
+       will produce a warning if a database record grows uncontrollably
+       with orphaned sub-records.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>RecoverTimeout</title>
-      <para>Default: 20</para>
+      <title>DBSizeWarn</title>
+      <para>Default: 1000000000</para>
       <para>
-       This is the default setting for timeouts for controls when sent from the
-       recovery daemon. We allow longer control timeouts from the recovery daemon
-       than from normal use since the recovery dameon often use controls that 
-       can take a lot longer than normal controls.
+       When set to non-zero, ctdb will log a warning when we try to
+       recover a database bigger than this. This will produce a warning
+       if a database grows uncontrollably.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>RecoverInterval</title>
-      <para>Default: 1</para>
+      <title>DeferredAttachTO</title>
+      <para>Default: 120</para>
+      <para>
+       When databases are frozen we do not allow clients to attach to
+       the databases. Instead of returning an error immediately to the
+       application the attach request from the client is deferred until
+       the database becomes available again at which stage we respond
+       to the client.
+      </para>
       <para>
-       How frequently in seconds should the recovery daemon perform the
-       consistency checks that determine if we need to perform a recovery or not.
+       This timeout controls how long we will defer the request from the
+       client before timing it out and returning an error to the client.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>ElectionTimeout</title>
-      <para>Default: 3</para>
+      <title>DeterministicIPs</title>
+      <para>Default: 0</para>
       <para>
-       When electing a new recovery master, this is how many seconds we allow
-       the election to take before we either deem the election finished
-       or we fail the election and start a new one.
+       When enabled, this tunable makes ctdb try to keep public IP
+       addresses locked to specific nodes as far as possible. This makes
+       it easier for debugging since you can know that as long as all
+       nodes are healthy public IP X will always be hosted by node Y.
+      </para>
+      <para>
+       The cost of using deterministic IP address assignment is that it
+       disables part of the logic where ctdb tries to reduce the number
+       of public IP assignment changes in the cluster. This tunable may
+       increase the number of IP failover/failbacks that are performed
+       on the cluster by a small margin.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>TakeoverTimeout</title>
-      <para>Default: 9</para>
+      <title>DisableIPFailover</title>
+      <para>Default: 0</para>
+      <para>
+       When enabled, ctdb will not perform failover or failback. Even
+       if a node fails while holding public IPs, ctdb will not recover
+       the IPs or assign them to another node.
+      </para>
       <para>
-       This is how many seconds we allow controls to take for IP failover events.
+       When you enable this tunable, CTDB will no longer attempt
+       to recover the cluster by failing IP addresses over to other
+       nodes. This leads to a service outage until the administrator
+       has manually performed failover to replacement nodes using the
+       'ctdb moveip' command.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>MonitorInterval</title>
-      <para>Default: 15</para>
+      <title>ElectionTimeout</title>
+      <para>Default: 3</para>
       <para>
-       How often should ctdb run the event scripts to check for a nodes health.
+       When electing a new recovery master, this is how many seconds
+       we allow the election to take before we either deem the election
+       finished or we fail the election and start a new one.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>TickleUpdateInterval</title>
-      <para>Default: 20</para>
+      <title>EnableBans</title>
+      <para>Default: 1</para>
       <para>
-       How often will ctdb record and store the "tickle" information used to
-       kickstart stalled tcp connections after a recovery.
+       When set to 0, this disables BANNING completely in the cluster
+       and thus nodes can not get banned, even it they break. Don't
+       set to 0 unless you know what you are doing.  You should set
+       this to the same value on all nodes to avoid unexpected behaviour.
       </para>
     </refsect2>
 
        out.  This is the total time for all enabled scripts that are
        run for an event, not just a single event script.
       </para>
-
       <para>
        Note that timeouts are ignored for some events ("takeip",
        "releaseip", "startrecovery", "recovered") and converted to
     </refsect2>
 
     <refsect2>
-      <title>MonitorTimeoutCount</title>
-      <para>Default: 20</para>
+      <title>FetchCollapse</title>
+      <para>Default: 1</para>
       <para>
-       How many monitor events in a row need to timeout before a node
-       is flagged as UNHEALTHY.  This setting is useful if scripts
-       can not be written so that they do not hang for benign
-       reasons.
+       When many clients across many nodes try to access the same record
+       at the same time this can lead to a fetch storm where the record
+       becomes very active and bounces between nodes very fast. This
+       leads to high CPU utilization of the ctdbd daemon, trying to
+       bounce that record around very fast, and poor performance.
       </para>
-    </refsect2>
-
-    <refsect2>
-      <title>RecoveryGracePeriod</title>
-      <para>Default: 120</para>
       <para>
-       During recoveries, if a node has not caused recovery failures during the
-       last grace period, any records of transgressions that the node has caused
-       recovery failures will be forgiven. This resets the ban-counter back to 
-       zero for that node.
+       This parameter is used to activate a fetch-collapse. A
+       fetch-collapse is when we track which records we have requests in
+       flight so that we only keep one request in flight from a certain
+       node, even if multiple smbd processes are attemtping to fetch
+       the record at the same time. This can improve performance and
+       reduce CPU utilization for certain workloads.
       </para>
-    </refsect2>
-
-    <refsect2>
-      <title>RecoveryBanPeriod</title>
-      <para>Default: 300</para>
       <para>
-       If a node becomes banned causing repetitive recovery failures. The node will
-       eventually become banned from the cluster.
-       This controls how long the culprit node will be banned from the cluster
-       before it is allowed to try to join the cluster again.
-       Don't set to small. A node gets banned for a reason and it is usually due
-       to real problems with the node.
+       This timeout controls if we should collapse multiple fetch
+       operations of the same record into a single request and defer
+       all duplicates or not.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>DatabaseHashSize</title>
-      <para>Default: 100001</para>
+      <title>HopcountMakeSticky</title>
+      <para>Default: 50</para>
       <para>
-       Size of the hash chains for the local store of the tdbs that ctdb manages.
+       If the database is set to 'STICKY' mode, using the 'ctdb
+       setdbsticky' command, any record that is seen as very hot and
+       migrating so fast that hopcount surpasses 50 is set to become a
+       STICKY record for StickyDuration seconds. This means that after
+       each migration the record will be kept on the node and prevented
+       from being migrated off the node.
+       </para>
+       <para>
+       This setting allows one to try to identify such records and
+       stop them from migrating across the cluster so fast. This will
+       improve performance for certain workloads, such as locking.tdb
+       if many clients are opening/closing the same file concurrently.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>DatabaseMaxDead</title>
+      <title>KeepaliveInterval</title>
       <para>Default: 5</para>
       <para>
-       How many dead records per hashchain in the TDB database do we allow before
-       the freelist needs to be processed.
+       How often in seconds should the nodes send keep-alive packets to
+       each other.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>RerecoveryTimeout</title>
-      <para>Default: 10</para>
+      <title>KeepaliveLimit</title>
+      <para>Default: 5</para>
       <para>
-       Once a recovery has completed, no additional recoveries are permitted
-       until this timeout has expired.
+       After how many keepalive intervals without any traffic should
+       a node wait until marking the peer as DISCONNECTED.
+       </para>
+       <para>
+       If a node has hung, it can thus take
+       KeepaliveInterval*(KeepaliveLimit+1) seconds before we determine
+       that the node is DISCONNECTED and that we require a recovery. This
+       limitshould not be set too high since we want a hung node to be
+       detectec, and expunged from the cluster well before common CIFS
+       timeouts (45-90 seconds) kick in.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>EnableBans</title>
+      <title>LCP2PublicIPs</title>
       <para>Default: 1</para>
       <para>
-       When set to 0, this disables BANNING completely in the cluster and thus
-       nodes can not get banned, even it they break. Don't set to 0 unless you
-       know what you are doing.  You should set this to the same value on
-       all nodes to avoid unexpected behaviour.
+       When enabled this switches ctdb to use the LCP2 ip allocation
+       algorithm.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>DeterministicIPs</title>
+      <title>LogLatencyMs</title>
       <para>Default: 0</para>
       <para>
-       When enabled, this tunable makes ctdb try to keep public IP addresses
-       locked to specific nodes as far as possible. This makes it easier for
-       debugging since you can know that as long as all nodes are healthy
-       public IP X will always be hosted by node Y. 
-      </para>
-      <para>
-       The cost of using deterministic IP address assignment is that it
-       disables part of the logic where ctdb tries to reduce the number of
-       public IP assignment changes in the cluster. This tunable may increase
-       the number of IP failover/failbacks that are performed on the cluster
-       by a small margin.
+       When set to non-zero, this will make the main daemon log any
+       operation that took longer than this value, in 'ms', to complete.
+       These include "how long time a lockwait child process needed",
+       "how long time to write to a persistent database" but also "how
+       long did it take to get a response to a CALL from a remote node".
       </para>
-
     </refsect2>
+
     <refsect2>
-      <title>LCP2PublicIPs</title>
-      <para>Default: 1</para>
+      <title>MaxRedirectCount</title>
+      <para>Default: 3</para>
       <para>
-       When enabled this switches ctdb to use the LCP2 ip allocation
-       algorithm.
+       If we are not the DMASTER and need to fetch a record across the
+       network we first send the request to the LMASTER after which the
+       record is passed onto the current DMASTER. If the DMASTER changes
+       before the request has reached that node, the request will be
+       passed onto the "next" DMASTER. For very hot records that migrate
+       rapidly across the cluster this can cause a request to "chase"
+       the record for many hops before it catches up with the record.
+      </para>
+      <para>
+       When chasing a record, this is how many hops we will chase
+       the record for before going back to the LMASTER to ask for
+       new guidance.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>ReclockPingPeriod</title>
-      <para>Default: x</para>
+      <title>MonitorInterval</title>
+      <para>Default: 15</para>
       <para>
-       Obsolete
+       How often should ctdb run the event scripts in seconds to check
+       for a node's health.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>NoIPFailback</title>
-      <para>Default: 0</para>
-      <para>
-       When set to 1, ctdb will not perform failback of IP addresses when a node
-       becomes healthy. Ctdb WILL perform failover of public IP addresses when a
-       node becomes UNHEALTHY, but when the node becomes HEALTHY again, ctdb
-       will not fail the addresses back.
-      </para>
-      <para>
-       Use with caution! Normally when a node becomes available to the cluster
-       ctdb will try to reassign public IP addresses onto the new node as a way
-       to distribute the workload evenly across the clusternode. Ctdb tries to
-       make sure that all running nodes have approximately the same number of
-       public addresses it hosts.
-      </para>
+      <title>MonitorTimeoutCount</title>
+      <para>Default: 20</para>
       <para>
-       When you enable this tunable, CTDB will no longer attempt to rebalance
-       the cluster by failing IP addresses back to the new nodes. An unbalanced
-       cluster will therefore remain unbalanced until there is manual
-       intervention from the administrator. When this parameter is set, you can
-       manually fail public IP addresses over to the new node(s) using the
-       'ctdb moveip' command.
+       How many monitor events in a row need to timeout before a node
+       is flagged as UNHEALTHY.  This setting is useful if scripts can
+       not be written so that they do not hang for benign reasons.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>DisableIPFailover</title>
+      <title>NoIPFailback</title>
       <para>Default: 0</para>
       <para>
-       When enabled, ctdb will not perform failover or failback. Even if a
-       node fails while holding public IPs, ctdb will not recover the IPs or
-       assign them to another node.
+       When set to 1, ctdb will not perform failback of IP addresses
+       when a node becomes healthy. Ctdb WILL perform failover of public
+       IP addresses when a node becomes UNHEALTHY, but when the node
+       becomes HEALTHY again, ctdb will not fail the addresses back.
       </para>
       <para>
-       When you enable this tunable, CTDB will no longer attempt to recover
-       the cluster by failing IP addresses over to other nodes. This leads to
-       a service outage until the administrator has manually performed failover
-       to replacement nodes using the 'ctdb moveip' command.
+       Use with caution! Normally when a node becomes available to the
+       cluster ctdb will try to reassign public IP addresses onto the
+       new node as a way to distribute the workload evenly across the
+       clusternode. Ctdb tries to make sure that all running nodes have
+       approximately the same number of public addresses it hosts.
       </para>
-    </refsect2>
-
-    <refsect2>
-      <title>NoIPTakeover</title>
-      <para>Default: 0</para>
       <para>
-       When set to 1, ctdb will not allow IP addresses to be failed over
-       onto this node. Any IP addresses that the node currently hosts
-       will remain on the node but no new IP addresses can be failed over
-       to the node.
+       When you enable this tunable, CTDB will no longer attempt to
+       rebalance the cluster by failing IP addresses back to the new
+       nodes. An unbalanced cluster will therefore remain unbalanced
+       until there is manual intervention from the administrator. When
+       this parameter is set, you can manually fail public IP addresses
+       over to the new node(s) using the 'ctdb moveip' command.
       </para>
     </refsect2>
 
       <para>
        If no nodes are healthy then by default ctdb will happily host
        public IPs on disabled (unhealthy or administratively disabled)
-       nodes.  This can cause problems, for example if the underlying
+       nodes.  This can cause problems, for example if the underlying
        cluster filesystem is not mounted.  When set to 1 on a node and
        that node is disabled it, any IPs hosted by this node will be
        released and the node will not takeover any IPs until it is no
     </refsect2>
 
     <refsect2>
-      <title>DBRecordCountWarn</title>
-      <para>Default: 100000</para>
+      <title>NoIPTakeover</title>
+      <para>Default: 0</para>
       <para>
-       When set to non-zero, ctdb will log a warning when we try to recover a
-       database with more than this many records. This will produce a warning
-       if a database grows uncontrollably with orphaned records.
+       When set to 1, ctdb will not allow IP addresses to be failed
+       over onto this node. Any IP addresses that the node currently
+       hosts will remain on the node but no new IP addresses can be
+       failed over to the node.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>DBRecordSizeWarn</title>
-      <para>Default: 10000000</para>
+      <title>RecdFailCount</title>
+      <para>Default: 10</para>
       <para>
-       When set to non-zero, ctdb will log a warning when we try to recover a
-       database where a single record is bigger than this. This will produce
-       a warning if a database record grows uncontrollably with orphaned
-       sub-records.
+       If the recovery daemon has failed to ping the main dameon for
+       this many consecutive intervals, the main daemon will consider
+       the recovery daemon as hung and will try to restart it to recover.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>DBSizeWarn</title>
-      <para>Default: 1000000000</para>
+      <title>RecdPingTimeout</title>
+      <para>Default: 60</para>
       <para>
-       When set to non-zero, ctdb will log a warning when we try to recover a
-       database bigger than this. This will produce
-       a warning if a database grows uncontrollably.
+       If the main dameon has not heard a "ping" from the recovery dameon
+       for this many seconds, the main dameon will log a message that
+       the recovery daemon is potentially hung.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>VerboseMemoryNames</title>
-      <para>Default: 0</para>
+      <title>RecLockLatencyMs</title>
+      <para>Default: 1000</para>
       <para>
-       This feature consumes additional memory. when used the talloc library
-       will create more verbose names for all talloc allocated objects.
+       When using a reclock file for split brain prevention, if set
+       to non-zero this tunable will make the recovery dameon log a
+       message if the fcntl() call to lock/testlock the recovery file
+       takes longer than this number of ms.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>RecdPingTimeout</title>
-      <para>Default: 60</para>
+      <title>RecoverInterval</title>
+      <para>Default: 1</para>
       <para>
-       If the main dameon has not heard a "ping" from the recovery dameon for
-       this many seconds, the main dameon will log a message that the recovery
-       daemon is potentially hung.
+       How frequently in seconds should the recovery daemon perform
+       the consistency checks that determine if we need to perform a
+       recovery or not.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>RecdFailCount</title>
-      <para>Default: 10</para>
+      <title>RecoverPDBBySeqNum</title>
+      <para>Default: 1</para>
+      <para>
+       When set to zero, database recovery for persistent databases is
+       record-by-record and recovery process simply collects the most
+       recent version of every individual record.
+      </para>
+      <para>
+       When set to non-zero, persistent databases will instead be
+       recovered as a whole db and not by individual records. The
+       node that contains the highest value stored in the record
+       "__db_sequence_number__" is selected and the copy of that nodes
+       database is used as the recovered database.
+      </para>
       <para>
-       If the recovery daemon has failed to ping the main dameon for this many
-       consecutive intervals, the main daemon will consider the recovery daemon
-       as hung and will try to restart it to recover.
+       By default, recovery of persistent databses is done using
+       __db_sequence_number__ record.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>LogLatencyMs</title>
-      <para>Default: 0</para>
+      <title>RecoverTimeout</title>
+      <para>Default: 20</para>
       <para>
-       When set to non-zero, this will make the main daemon log any operation that
-       took longer than this value, in 'ms', to complete.
-       These include "how long time a lockwait child process needed", 
-       "how long time to write to a persistent database" but also
-       "how long did it take to get a response to a CALL from a remote node".
+       This is the default setting for timeouts for controls when sent
+       from the recovery daemon. We allow longer control timeouts from
+       the recovery daemon than from normal use since the recovery
+       dameon often use controls that can take a lot longer than normal
+       controls.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>RecLockLatencyMs</title>
-      <para>Default: 1000</para>
+      <title>RecoveryBanPeriod</title>
+      <para>Default: 300</para>
       <para>
-       When using a reclock file for split brain prevention, if set to non-zero
-       this tunable will make the recovery dameon log a message if the fcntl()
-       call to lock/testlock the recovery file takes longer than this number of 
-       ms.
+       If a node becomes banned causing repetitive recovery failures. The
+       node will eventually become banned from the cluster.  This
+       controls how long the culprit node will be banned from the
+       cluster before it is allowed to try to join the cluster again.
+       Don't set to small. A node gets banned for a reason and it is
+       usually due to real problems with the node.
       </para>
     </refsect2>
 
     </refsect2>
 
     <refsect2>
-      <title>VacuumInterval</title>
-      <para>Default: 10</para>
-      <para>
-        Periodic interval in seconds when vacuuming is triggered for
-        volatile databases.
-      </para>
-    </refsect2>
-
-    <refsect2>
-      <title>VacuumMaxRunTime</title>
+      <title>RecoveryGracePeriod</title>
       <para>Default: 120</para>
       <para>
-        The maximum time in seconds for which the vacuuming process is
-        allowed to run.  If vacuuming process takes longer than this
-        value, then the vacuuming process is terminated.
+       During recoveries, if a node has not caused recovery failures
+       during the last grace period, any records of transgressions that
+       the node has caused recovery failures will be forgiven. This
+       resets the ban-counter back to zero for that node.
       </para>
     </refsect2>
 
       <title>RepackLimit</title>
       <para>Default: 10000</para>
       <para>
-        During vacuuming, if the number of freelist records are more
-        than <varname>RepackLimit</varname>, then databases are
-        repacked to get rid of the freelist records to avoid
-        fragmentation.
+        During vacuuming, if the number of freelist records are more than
+        <varname>RepackLimit</varname>, then databases are repacked to
+        get rid of the freelist records to avoid fragmentation.
       </para>
       <para>
-        Databases are repacked only if both
-        <varname>RepackLimit</varname> and
-        <varname>VacuumLimit</varname> are exceeded.
+        Databases are repacked only if both <varname>RepackLimit</varname>
+        and <varname>VacuumLimit</varname> are exceeded.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>VacuumLimit</title>
-      <para>Default: 5000</para>
-      <para>
-        During vacuuming, if the number of deleted records are more
-        than <varname>VacuumLimit</varname>, then databases are
-        repacked to avoid fragmentation.
-      </para>
+      <title>RerecoveryTimeout</title>
+      <para>Default: 10</para>
       <para>
-        Databases are repacked only if both
-        <varname>RepackLimit</varname> and
-        <varname>VacuumLimit</varname> are exceeded.
+       Once a recovery has completed, no additional recoveries are
+       permitted until this timeout has expired.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>VacuumFastPathCount</title>
-      <para>Default: 60</para>
+      <title>Samba3AvoidDeadlocks</title>
+      <para>Default: 0</para>
+      <para>
+        Enable code that prevents deadlocks with Samba (only for Samba
+        3.x).
+      </para>
       <para>
-        When a record is deleted, it is marked for deletion during
-        vacuuming.  Vacuuming process usually processes this list to purge
-        the records from the database.  If the number of records marked
-        for deletion are more than VacuumFastPathCount, then vacuuming
-       process will scan the complete database for empty records instead
-       of using the list of records marked for deletion.
+       This should be set to 1 when using Samba version 3.x to enable
+       special code in CTDB to avoid deadlock with Samba version 3.x.
+       This code is not required for Samba version 4.x and must not be
+       enabled for Samba 4.x.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>DeferredAttachTO</title>
-      <para>Default: 120</para>
+      <title>SeqnumInterval</title>
+      <para>Default: 1000</para>
       <para>
-       When databases are frozen we do not allow clients to attach to the
-       databases. Instead of returning an error immediately to the application
-       the attach request from the client is deferred until the database
-       becomes available again at which stage we respond to the client.
+       Some databases have seqnum tracking enabled, so that samba will
+       be able to detect asynchronously when there has been updates
+       to the database.  Everytime a database is updated its sequence
+       number is increased.
       </para>
       <para>
-       This timeout controls how long we will defer the request from the client
-       before timing it out and returning an error to the client.
+       This tunable is used to specify in 'ms' how frequently ctdb
+       will send out updates to remote nodes to inform them that the
+       sequence number is increased.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>HopcountMakeSticky</title>
-      <para>Default: 50</para>
-      <para>
-       If the database is set to 'STICKY' mode, using the 'ctdb setdbsticky' 
-       command, any record that is seen as very hot and migrating so fast that
-       hopcount surpasses 50 is set to become a STICKY record for StickyDuration
-       seconds. This means that after each migration the record will be kept on
-       the node and prevented from being migrated off the node.
-      </para>
+      <title>StatHistoryInterval</title>
+      <para>Default: 1</para>
       <para>
-       This setting allows one to try to identify such records and stop them from
-       migrating across the cluster so fast. This will improve performance for
-       certain workloads, such as locking.tdb if many clients are opening/closing
-       the same file concurrently.
+       Granularity of the statistics collected in the statistics
+       history. This is reported by 'ctdb stats' command.
       </para>
     </refsect2>
 
       <title>StickyDuration</title>
       <para>Default: 600</para>
       <para>
-       Once a record has been found to be fetch-lock hot and has been flagged to
-       become STICKY, this is for how long, in seconds, the record will be 
-       flagged as a STICKY record.
+       Once a record has been found to be fetch-lock hot and has been
+       flagged to become STICKY, this is for how long, in seconds,
+       the record will be flagged as a STICKY record.
       </para>
     </refsect2>
 
       <title>StickyPindown</title>
       <para>Default: 200</para>
       <para>
-       Once a STICKY record has been migrated onto a node, it will be pinned down
-       on that node for this number of ms. Any request from other nodes to migrate
-       the record off the node will be deferred until the pindown timer expires.
+       Once a STICKY record has been migrated onto a node, it will be
+       pinned down on that node for this number of ms. Any request from
+       other nodes to migrate the record off the node will be deferred
+       until the pindown timer expires.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>StatHistoryInterval</title>
-      <para>Default: 1</para>
+      <title>TakeoverTimeout</title>
+      <para>Default: 9</para>
       <para>
-       Granularity of the statistics collected in the statistics history.
+       This is how many seconds we allow controls to take for IP
+       failover events.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>AllowClientDBAttach</title>
-      <para>Default: 1</para>
+      <title>TickleUpdateInterval</title>
+      <para>Default: 20</para>
       <para>
-       When set to 0, clients are not allowed to attach to any databases.
-       This can be used to temporarily block any new processes from attaching
-       to and accessing the databases.
+       How often will ctdb record and store the "tickle" information
+       used to kickstart stalled tcp connections after a recovery.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>RecoverPDBBySeqNum</title>
-      <para>Default: 1</para>
+      <title>TraverseTimeout</title>
+      <para>Default: 20</para>
       <para>
-       When set to zero, database recovery for persistent databases
-       is record-by-record and recovery process simply collects the
-       most recent version of every individual record.
+       This setting controls how long we allow a traverse process to run.
+       After this timeout triggers, the main ctdb daemon will abort
+       the traverse if it has not yet finished.
       </para>
+    </refsect2>
+
+    <refsect2>
+      <title>VacuumFastPathCount</title>
+      <para>Default: 60</para>
       <para>
-       When set to non-zero, persistent databases will instead be
-       recovered as a whole db and not by individual records. The
-       node that contains the highest value stored in the record
-       "__db_sequence_number__" is selected and the copy of that
-       nodes database is used as the recovered database.
+       When a record is deleted, it is marked for deletion during
+       vacuuming.  Vacuuming process usually processes this list to
+       purge the records from the database.  If the number of records
+       marked for deletion are more than VacuumFastPathCount, then
+       vacuuming process will scan the complete database for empty
+       records instead of using the list of records marked for deletion.
       </para>
+    </refsect2>
+
+    <refsect2>
+      <title>VacuumInterval</title>
+      <para>Default: 10</para>
       <para>
-       By default, recovery of persistent databses is done using
-       __db_sequence_number__ record.
+        Periodic interval in seconds when vacuuming is triggered for
+        volatile databases.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>FetchCollapse</title>
-      <para>Default: 1</para>
+      <title>VacuumLimit</title>
+      <para>Default: 5000</para>
       <para>
-       When many clients across many nodes try to access the same record at the
-       same time this can lead to a fetch storm where the record becomes very
-       active and bounces between nodes very fast. This leads to high CPU
-       utilization of the ctdbd daemon, trying to bounce that record around
-       very fast, and poor performance.
+        During vacuuming, if the number of deleted records are more than
+        <varname>VacuumLimit</varname>, then databases are repacked to
+        avoid fragmentation.
       </para>
       <para>
-       This parameter is used to activate a fetch-collapse. A fetch-collapse
-       is when we track which records we have requests in flight so that we only
-       keep one request in flight from a certain node, even if multiple smbd
-       processes are attemtping to fetch the record at the same time. This 
-       can improve performance and reduce CPU utilization for certain
-       workloads.
+        Databases are repacked only if both <varname>RepackLimit</varname>
+        and <varname>VacuumLimit</varname> are exceeded.
       </para>
+    </refsect2>
+
+    <refsect2>
+      <title>VacuumMaxRunTime</title>
+      <para>Default: 120</para>
       <para>
-       This timeout controls if we should collapse multiple fetch operations
-       of the same record into a single request and defer all duplicates or not.
+        The maximum time in seconds for which the vacuuming process is
+        allowed to run.  If vacuuming process takes longer than this
+        value, then the vacuuming process is terminated.
       </para>
     </refsect2>
 
     <refsect2>
-      <title>Samba3AvoidDeadlocks</title>
+      <title>VerboseMemoryNames</title>
       <para>Default: 0</para>
       <para>
-       Enable code that prevents deadlocks with Samba (only for Samba 3.x).
-      </para>
-      <para>
-       This should be set to 1 when using Samba version 3.x to enable special
-       code in CTDB to avoid deadlock with Samba version 3.x.  This code
-       is not required for Samba version 4.x and must not be enabled for
-       Samba 4.x.
+       This feature consumes additional memory. when used the talloc
+       library will create more verbose names for all talloc allocated
+       objects.
       </para>
     </refsect2>
+
   </refsect1>
 
   <refsect1>