How does CouchDB replication behave with Failed / Recovered servers?

Consider the following scenario:

3 EC2 instances located in:

  • US-WEST
  • Ireland
  • Tokyo

Each instance is a dedicated CouchDB server. Each CouchDB server is configured for continuous replication with each other server (bidirectional).

Now suppose the Irish server shuts down due to some AWS failure. US-WEST and Tokyo CouchDB servers will repeat X times in a row, and then ultimately replicate with this server (is that right?)

Let's try to go 6 hours, and AWS will return the region back to the network, and this server will return - I assume that US-WEST and Tokyo will ignore the server in Ireland until the Irish CouchDB server initiates bidirectional synchronization with both of them, a la:

Irish CouchDB _replicator Pseudo Settings

  • replicate [source = local, target = we-west]
  • replicate [source = we-west, target = local]
  • replicate [source = local, target = Tokyo]
  • replicate [source = Tokyo, target = local]

Q1: Is my understanding of Couch replication error or recovery correct?

Q2: What happens if a network failure occurs in an hour (in particular: there is no restart of the server causing the database to restart at startup), how do the corresponding CouchDB instances react to this? I believe that us-west and tokyo will forget about Ireland, but will Ireland start talking to these two servers again, reinitializing bidirectional continuous replication?

EC2, , , , .

!

+5
1

1.1 , . , . , . ( ), cronjob, ( - ). , ( ).

1.1 , _replicator. CouchDB , . : 1.1.0 , (1.1.1) .

CouchDB , , , . , , .

+4

All Articles