From: | Markus Schiltknecht <markus(at)bluegap(dot)ch> |
---|---|
To: | postgres-r-general(at)pgfoundry(dot)org |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | terms for database replication: synchronous vs eager |
Date: | 2007-09-07 15:01:08 |
Message-ID: | 46E167B4.6070107@bluegap.ch |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Brian Hurt | 2007-09-07 15:08:13 | Re: Hash index todo list item |
Previous Message | Kenneth Marshall | 2007-09-07 14:55:07 | Re: Hash index todo list item |