Re: 7.4 Press Release -- Draft #4

From: Gavin Sherry <swm(at)linuxworld(dot)com(dot)au>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>, pgsql-advocacy(at)postgresql(dot)org
Subject: Re: 7.4 Press Release -- Draft #4
Date: 2003-07-28 23:16:59
Message-ID: Pine.LNX.4.21.0307290913070.22484-100000@linuxworld.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-advocacy

On Mon, 28 Jul 2003, Josh Berkus wrote:

> Robert,
>
> > Aside from spec compliance, whats the bonus for having it then? Or put a
> > better way, why/when would I want to use this?
>
> One scenario: You have 5 PostgreSQL servers connecting to one SAN or NAS
> which is your /data directory for a single database. You use your
> middleware to distribute requests among the servers; One server gets data
> write requests, the other 4 get read-only requests.
>
> However, you want to make sure that if your middleware hiccups you don't
> corrupt the database files. For this, setting 4 of the servers to "Read Only
> Transactions" would be useful.

That will not work because the writer maintains a cache of data to write
and worse case scenario, the data only gets written to data files every
CHECKPOINT. This means that your four readers are returning corrupted
data. Moreover, the readers do not expect the data to change undernearth
them, as they maintain caches and would have no mechanism to invalidate
that cache upon external file system changes. Load balancing and
clustering is hard :P.

It is, however, generally used with READ UNCOMMITTED transactions. In
fact, SQL99 necessitates READ ONLY for READ UNCOMMITTED isolation level
(READ UNCOMMITTED allows you to see uncommitted data modifications).

Gavin

In response to

Responses

Browse pgsql-advocacy by date

  From Date Subject
Next Message Ned Lilly 2003-07-29 00:21:21 BerkeleyDB ships with Python/Zope
Previous Message Christopher Browne 2003-07-28 22:01:13 Why READ ONLY transactions?