Re: [HACKERS] [pgsql-hackers] Daily digest v1.5568 (24 messages)

2005-11-21 Thread Marc Munro
I wonder if this idea might be taken a little further, to allow
read-only tablespaces?

This would allow old partitions in very large databases to be kept on
read-only media, and would allow normal backups to ignore this
unchanging set of data.

It also allows for certain specific optimisations for this type of data,
as the MVCC rules are now relaxed.  Inclusion of a row in a read-only
index is now enough to guarantee the visibility of that row to all
backends, and fetches based solely on the index now become possible.

FWIW, Oracle does something like this.  Just a thought.

__
Marc

On Mon, 2005-11-21 at 09:53 -0400, [EMAIL PROTECTED]
wrote:
 Date: Sun, 20 Nov 2005 22:39:49 +0200 (EET)
 From: Heikki Linnakangas [EMAIL PROTECTED]
 To: pgsql-hackers@postgresql.org
 Subject: Data directory on read-only media
 Message-ID: [EMAIL PROTECTED]
 
 Hi,
 
 I've been thinking about running postgres from read-only media. It's 
 handy for creating demo CDs etc. I hacked together a patch that
 allows 
 you to run Postgres without write permissions to the data directory.
 


signature.asc
Description: This is a digitally signed message part


Re: [HACKERS] [pgsql-hackers] Daily digest v1.5568 (24 messages)

2005-11-21 Thread Heikki Linnakangas

On Mon, 21 Nov 2005, Marc Munro wrote:


I wonder if this idea might be taken a little further, to allow
read-only tablespaces?

This would allow old partitions in very large databases to be kept on
read-only media, and would allow normal backups to ignore this
unchanging set of data.


I guess you could do that, but it's really quite a different problem.


It also allows for certain specific optimisations for this type of data,
as the MVCC rules are now relaxed.  Inclusion of a row in a read-only
index is now enough to guarantee the visibility of that row to all
backends, and fetches based solely on the index now become possible.


There's this TODO:


Allow data to be pulled directly from indexes

Currently indexes do not have enough tuple visibility information to
allow data to be pulled from the index without also accessing the heap. 
One way to allow this is to set a bit to index tuples to indicate if a
tuple is currently visible to all transactions when the first valid 
heap lookup happens. This bit would have to be cleared when a heap 
tuple is expired.


That method doesn't require read-only tablespaces.

- Heikki

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings