I'm presently analyzing different NoSQL and RDBMSes regarding replication capabilities to be able to build distributed systems.

Reading through through several papers and books, I recieve the sensation, that some suppliers or authors use their very own definitions concerning the terms

  • Master-Master Replication (Replication between two servers)
  • Master-Slave Replication (Replication between mutliple Servers to be able to increase reading through speed, creates are just able for that master server)
  • Multi-Master Replication (= Peer-To-Peer?)
  • Peer-To-Peer Replication (replication between n nodes, each can seeOrcreate)
  • Merge Replication (?)

E.g: Some combine the terms Master-Master and Peer-to-Peer because the same, during Mysql docus for example I discovered it's classified between Master-Master and Multi-Master (=Peer-to-peer???) Replication.

Where's the main difference in Multi-Master and Peer-to-Peer replication? Is Multi-Master replication's use situation more oriented towards Clustering while Peer-To-Peer targets distributed content to distributed programs?

I must work things out and make certain which i possess the right understanding during these terms, so perhaps attorney at law in here is needed to merge some understanding.

Regards, Chris

Edit: added merge replication towards the list plus some explanations when i understand them...

Regarding CouchDB, the storyline is straightforward. Here you go:

There's only one replication way of CouchDB. The origin copies its data towards the target, susceptible to an optional yes/no filter. I referred to CouchDB replication in another question. The main factor is the fact that "replication" is only a DB client. It connects to both couches, reads in the source, and creates towards the target.

Every other large-picture architecture (peer-to-peer, multi-master, master-slave) is only the implementation from the designers or even the system managers. For instance, if GETs are given to many couches, but POST visit one central couch which illegal copies towards the others, that's effectively master-slave. Should you put a CouchDB in each and every major city for performance, plus they replicate directly with one another, that's multi-master replication.

Inside the CouchDB community, and particularly from Chris Anderson's projects and presentations, "peer-to-peer" replication is really a concept where CouchDB is everywhere: cell phones, data centers, telephone rods. And replication happens directly between couches inside a decentralized way, with no central authority or architecture, such as the web itself.