Hacker News new | past | comments | ask | show | jobs | submit login

Quorum commits are coming.[1] This provides a similar feature to the "Group Replication" functionality for MySQL outlined in the post.

[1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit...




I'm not sure it is quite the same, since it is WAL based (i.e. can you write to any node?)

There is semi-sync in MySQL as well, which ensures N replicas have received a write.


You're right. I think in general the quorum commit in Postgres is a bit lower level, in the sense that it is less opinionated and allows you to configure the quorum (essentially enabling both semisync and synchronous).

Also, as sibling points out, semisync in MySQL seems to commit on the master first no matter what, while in PG quorum commit, no one commits until the required acks are received.


MySQL 5.7+ will default to wait for the ack before committing locally. This is referred to as "lossless semi-sync".


That's not what semi-sync does. Semi-sync commits the write to the master and then blocks on returning a result to the client until N replicas have received a write OR a timeout is reached. There is no ability to roll back the write on the master once it is committed.


This was the case for 5.5 and 5.6. MySQL 5.7+ will default to wait for the ack before committing locally:

https://dev.mysql.com/doc/refman/5.7/en/server-system-variab...


Does AFTER_SYNC mean MySQL 5.7+ can have unacknowledged writes appear on the slaves after a master crash and failover?


I believe the answer is "yes" but this problem is not unique to semi-sync. Take a single server example:

You could ask the database to "COMMIT"; it receives the command and processes it, but does not manage to send you notification that it has managed.

There is a further failure state:

The master could be behind when it crashed. So you need to look at it's gtid executed set or re-image it before plugging it back in.

(Not a distributed systems guy; I work on the non HA+replication parts of the server)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: