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.