terms for database replication: synchronous vs eager - Mailing list pgsql-hackers

From Markus Schiltknecht
Subject terms for database replication: synchronous vs eager
Date
Msg-id 46E167B4.6070107@bluegap.ch
Whole thread Raw
Responses Re: terms for database replication: synchronous vs eager
List pgsql-hackers
Hi,

I'm asking for advice and hints regarding terms in database replication, 
especially WRT Postgres-R. (Sorry for crossposting, but I fear not 
reaching enough people on the Postgres-R ML alone)

I'm struggling on how to classify the Postgres-R algorithm. Up until 
recently, most people thought of it as synchronous replication, but it's 
not synchronous in the strong (and very common) sense. I.e. after a node 
confirms to have committed a transaction, other nodes didn't necessarily 
commit already. (They only promise that they *will* commit without 
conflicts).

This violates the common understanding of synchrony, because you can't 
commit on a node A and then query another node B and expect it be 
coherent immediately.

None the less, Postgres-R is eager (or pessimistic?) in the sense that 
it replicates *before* committing, so as to avoid divergence. In [1] 
I've tried to make that distinction clear, and I'm currently advocating 
for using synchronous only in the very strong (and commonly used) sense. 
I've choosen the word 'eager' to mean 'replicates before committing'.

According to that definitions, Postgres-R is async but eager.

Do these definitions violate any common meaning? Maybe in other areas 
like distributed storage or lock managers?

Regards

Markus

[1]: Terms and Definitions of Database Replication
http://www.postgres-r.org/documentation/terms


pgsql-hackers by date:

Previous
From: Kenneth Marshall
Date:
Subject: Re: Hash index todo list item
Next
From: Brian Hurt
Date:
Subject: Re: Hash index todo list item