News for hackers. Stuff that matters.
Re:Bidirectional Replication is coming to PostgreSQL 9.6 by gaius on Monday September 26, 2016 @12:27AM (#12579229)
The moment I heard multi-master I thought Paxos, Raft or maybe virtual synchrony. Hmm, nothing in the documentation. Maybe a new consensus protocol was written from scratch then?

What's your use case here? Do you really want multi-master/bi-directional replication, or do you want distributed transactions? Why would an app want to connect to both masters, this isn't sharding?

Re:Bidirectional Replication is coming to PostgreSQL 9.6 by lmm on Monday September 26, 2016 @08:24AM (#12581204)
If it isn't sharding then what is it? If every node has to process every write anyway (so there's no performance advantage over single-master) then why would one ever use this rather than traditional master-slave?
Re:Bidirectional Replication is coming to PostgreSQL 9.6 by gaius on Monday September 26, 2016 @08:38AM (#12581263)
Active-active DR scenario, zero failover. Done this loads with Oracle. Or mostly-read regional DBs separated by a slow WAN, ditto.
Re:Bidirectional Replication is coming to PostgreSQL 9.6 by lmm on Monday September 26, 2016 @08:43AM (#12581300)
> Active-active DR scenario, zero failover.

I guess, but I don't see the advantage over master -> slave failover? You lose unreplicated writes either way.

> Or mostly-read regional DBs separated by a slow WAN, ditto.

If it's just reads then regional slaves work well. If your writes don't need to be transactional then a RDBMS seems unlikely to be a good fit in general.

Re:Bidirectional Replication is coming to PostgreSQL 9.6 by CodeWriter23 on Monday September 26, 2016 @10:11AM (#12581923)
mostly reads != just reads

Think mutiple fulfillment centers changing state orders as they are shipped. Read mostly, write a little.

Re:Bidirectional Replication is coming to PostgreSQL 9.6 by lmm on Monday September 26, 2016 @10:18AM (#12581969)
Sure. Either global transactionality for writes is important (in which case this style is useless, you need a master to accept the writes (or else some kind of distributed consensus protocol which this doesn't have) and single global master + distributed read slaves is a good model), transactionality is only important per-center (in which case I'd rather have explicit sharding rather than invisible differences in behaviour between queries that look the same), or you don't need transactional behaviour at all (in which case an RDBMS is probably a poor fit).