My understanding is that in a multi-master DB architecture:
- You have 2+ DB servers, both acting as read/write masters; and
- It either up to some type of load balancer to balance operations across these multiple masters; and
- Whenever a server gets a read, it fetches and returns the queried data locally; and
- Whenever a server gets a write, it writes + commits locally but then replicates that write in real-time to the other servers (this is why the system implicitly requires a load balancer, to prevent the same write from going to 2+ different masters at the same time); and
- You can have Active/Active or Active/Passive setups. With the former, the load balancer truly balances writes across all nodes. I don't really understand the latter (Active/Passive)
So to begin with, if anything I have stated above is incorrect, please begin by correcting me or clarifying it for me! Assuming I'm more or less on target:
Then what is (really) the difference between Multi-Master and Peer-To-Peer (P2P)? In a P2P system, any read gets executed and returned locally, and any write gets written locally and then replicated out to all the peers...so aren't they one in the same?!