You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2020/01/08 02:35:52 UTC

[couchdb-documentation] 01/01: Document rexi config settings

This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch rexi-docs
in repository https://gitbox.apache.org/repos/asf/couchdb-documentation.git

commit 5ab28fa6367455e5bf7c76c6d9bdf005e71cc810
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Tue Jan 7 21:35:34 2020 -0500

    Document rexi config settings
---
 src/config/cluster.rst | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/src/config/cluster.rst b/src/config/cluster.rst
index ca229e5..5887597 100644
--- a/src/config/cluster.rst
+++ b/src/config/cluster.rst
@@ -85,3 +85,39 @@ Cluster Options
 
         [cluster]
         seedlist = couchdb@node1.example.com,couchdb@node2.example.com
+
+RPC Performance Tuning
+======================
+
+.. config:section:: rexi :: Internal RPC Tuning
+
+    CouchDB uses distributed Erlang to communicate between nodes in a cluster.
+    The ``rexi`` library provides an optimized RPC mechanism over this
+    communication channel. There are a few configuration knobs for this system,
+    although in general the defaults work well.
+
+    .. config:option:: buffer_count
+
+    The local RPC server will buffer messages if a remote node goes unavailable.
+    This flag determines how many messages will be buffered before the local
+    server starts dropping messages. Default value is ``2000``.
+
+    .. config:option:: server_per_node
+
+    Early versions of this RPC library used a single local Erlang process for
+    sending messages to all other nodes in a cluster. The current default is to
+    spawn a local gen_server process for each node in the cluster. It is not
+    recommended to change this setting from the default.
+
+    .. config:option:: stream_limit
+
+        .. versionadded:: 3.0
+
+    This flag comes into play during streaming operations like views and change
+    feeds. It controls how many messages a remote worker process can send to a
+    coordinator without waiting for an acknowledgement from the coordinator
+    process. If this value is too large the coordinator can become overwhelmed
+    by messages from the worker processes and actually deliver lower overall
+    throughput to the client. In CouchDB 2.x this value was hard-coded to
+    ``10``. In the 3.x series it is configurable and defaults to ``5``.
+    Databases with a high ``q`` value are especially sensitive to this setting.