How come there is no outage when adding a node?
I wonder how come there is no outage when adding a node to a Couchbase database. Each client has a node map. If it changes, a document that was available on a node may suddenly be available on another one. It can't be available on both. So how do you synchronize the the clients and the nodes?
When you are adding a node (in fact it is the same for any topology change), the Couchbase cluster pushed the "future" vBbucket map to the cluster (this is call "fast-forward map) and the clients knows what is going on, to see if it needs to call the "old map/node" or the new one.
Since the clients are aware of what is happening on the server, and sees all the vBuckets movements it is possible to be sure that all the data are available all the time during a rebalance (add/remove nodes) ( see http://docs.couchbase.com/couchbase-manual-2.2/#rebalancing )
I am inviting you to look at the architecture white paper: