Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-advocacy by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group