couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject documentation commit: updated refs/heads/master to 1e5b636
Date Wed, 31 Aug 2016 18:48:13 GMT
Repository: couchdb-documentation
Updated Branches:
  refs/heads/master eb4eab621 -> 1e5b636a2

Add cluster placement reference info

Closes COUCHDB-2944


Branch: refs/heads/master
Commit: 1e5b636a25df9061ba9d6988435e9cdef2145fa4
Parents: eb4eab6
Author: Joan Touzet <>
Authored: Wed Aug 31 14:47:24 2016 -0400
Committer: Joan Touzet <>
Committed: Wed Aug 31 14:47:24 2016 -0400

 src/cluster/databases.rst | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
diff --git a/src/cluster/databases.rst b/src/cluster/databases.rst
index f50cb45..aaf2807 100644
--- a/src/cluster/databases.rst
+++ b/src/cluster/databases.rst
@@ -41,3 +41,38 @@ Deleteing a database
 .. code-block:: bash
     curl -X DELETE " --user admin-user
+Placing a database on specific nodes
+In BigCouch, the predecessor to CouchDB 2.0's clustering functionality, there
+was the concept of zones. CouchDB 2.0 carries this forward with cluster
+placement rules.
+First, each node must be labelled with a zone attribute. This defines which
+zone each node is in. You do this by editing the node's document in the
+``/nodes`` database, which is accessed through the "back-door" (5986) port.
+Add a key value pair of the form:
+.. code-block:: text
+    "zone": "metro-dc-a"
+Do this for all of the nodes in your cluster.
+In your config file (local.ini or default.ini) on each node, define a
+consistent cluster-wide setting like:
+.. code-block:: text
+    [cluster]
+    placement = metro-dc-a:2,metro-dc-b:1
+In this example, it will ensure that two replicas for a shard will be hosted
+on nodes with the zone attribute set to ``metro-dc-a`` and one replica will
+be hosted on a new wiht the zone attribute set to ``metro-dc-b``.
+Note that you can also use this system to ensure certain nodes in the cluster
+do not host *any* replicas for newly created databases, by giving them a zone
+attribute that does not appear in the ``[cluster]`` placement string.

View raw message