On 5/22/12 12:09 PM, Simon Riggs wrote:
On 22 May 2012 13:52, Robert Haas<robertmh...@gmail.com>  wrote:

It seems pretty clear to me that making pg_upgrade responsible for
emptying block zero is a non-starter.  But I don't think that's a
reason to throw out the design; I think it's a problem we can work
around.

I like your design better as well *if* you can explain how we can get
to it. My proposal was a practical alternative that would allow the
idea to proceed.

It occurred to me that having a metapage with information useful to recovery 
operations in *every segment* would be useful; it certainly seems worth the 
extra block. It then occurred to me that we've basically been stuck with 2 
places to store relation data; either at the relation level in pg_class or on 
each page. Sometimes neither one is a good fit.

ISTM that a lot of problems we've faced in the past few years are because 
there's not a good abstraction between a (mostly) linear tuplespace and the 
physical storage that goes underneath it.

- pg_upgrade progress is blocked because we can't deal with a new page that's > 
BLKSZ
- There's no good way to deal with table (or worse, index) bloat
- There's no good way to add the concept of a heap metapage
- Forks are being used to store data that might not belong there only because 
there's no other choice (visibility info)

Would it make sense to take a step back and think about ways to abstract 
between logical tuplespace and physical storage? What if 1GB segments had their 
own metadata? Or groups of segments? Could certain operations that currently 
have to rewrite an entire table be changed so that they slowly moved pages from 
one group of segments to another, with a means of marking old pages as having 
been moved?

Einstein said that "problems cannot be solved by the same level of thinking that 
created them." Perhaps we're at the point where we need to take a step back from our 
current storage organization and look for a bigger picture?
--
Jim C. Nasby, Database Architect                   j...@nasby.net
512.569.9461 (cell)                         http://jim.nasby.net

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to