couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Keary <>
Subject Modifying a cluster
Date Tue, 01 Nov 2016 07:36:02 GMT
Hi All,

I have a two node cluster with the following configuration:

q=8, r=1, w=2, n=2

>From time to time I want to be able to be able to patch/upgrade the servers by adding
two new nodes (servers) to the cluster and then removing the previous two. In this scenario
I think all nodes in the cluster at any time (2-4) should have copies of all shards of all
databases. My understanding is then to add a node I need to:

1. Add the node to the list of cluster nodes via a PUT to /_nodes
2. For each database update the /_all_dbs/<database_name> pseudo document. For each
shard in the document add the new node.

There are a few things I'm not clear of:

1. Is this generally right? Assuming it is:
2. With a large amount of databases it seems impractical to manually add a node since a document
for each database will need to be modified and the modification isn't trivial. At the moment
I have a JS script to do this but wanted to check I'm not missing something?
3. I don't really understand how the system databases (_users, _metadata, _replication, _global_changes)
fit into the picture? It looks like I need to treat them as normal databases and add all the
shards for them to the new node? Doing a PUT to (for instance) _all_dbs/_global_changes to
do this fails with "Only reserved document ids may start with underscore" so I'm a little

Thanks for any help!

This message contains confidential information and is intended only for the individual(s)
named. If you are not the named addressee you should not disseminate, distribute or copy this
email. Please immediately delete it and all copies of it from your system, destroy any hard
copies of it, and notify the sender. Email transmission cannot be guaranteed to be secure
or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late
or incomplete, or contain viruses. To the maximum extent permitted by law, Immersive Technologies
Pty. Ltd. does not accept liability for any errors or omissions in the contents of this message
which arise as a result of email transmission.
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message