Back in 2008, Robert Haas made this post http://postgresql.nabble.com/Sync-Rep-First-Thoughts-on-Code-tp1998339p1998433.html in which he delineates between different levels of replication. 1-safe is guaranteed with PG WALs. Other possibilities include group-safe, both group safe and 1-safe, 2-safe.
How do we qualify PG when WALs are written (and archived) on the master, and streaming replication to a hot standby, albeit asynchronous, is used? Is it Group-safe?
My understanding is "Strictly speaking, No".
But what precisely is the algorithm and timing involved with streaming WALs?
Is it:
* client issues COMMIT
* master receives commit
* master processes transaction internally
* master creates WAL record
| master appends WAL to local WAL file, flushes disk
| master sends WAL record to all streaming clients
* master sends OK to client
* master applies WAL
Can we make a case stronger than that? Assuming the T0 is round trip time between master and client, and T1 is round trip time between master and slave, as long as T1 <= T0, and provided both Slave and Master do not fail, the system is Group-safe?
--