terms for database replication: synchronous vs eager

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

Responses

Browse pgsql-hackers by date

  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