tablespace patch

Started by Christopher Kings-Lynneover 22 years ago3 messages
#1Christopher Kings-Lynne
chriskl@familyhealth.com.au

Hi Guys,

Just thought I'd let you know that I've gotten hold of Jim Buttafuoco's old
index location patch and had a look at it. I can see now the restrictions
in it, and it's not as far along as I thought. I'll hold onto it though,
and gradually come up with a full solution (hopefully) using a pg_location
table, etc.

First thing tho, apparently, is to refactor smgr and bufmgr to use only file
descriptors am I right?

Chris

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Christopher Kings-Lynne (#1)
Re: tablespace patch

"Christopher Kings-Lynne" <chriskl@familyhealth.com.au> writes:

First thing tho, apparently, is to refactor smgr and bufmgr to use
only file descriptors am I right?

Well, they shouldn't be using Relations, for sure. Something based
on knowing only RelFileNode would be appropriate. Vadim wrote a few
messages about this back when he was still active --- check the
archives.

In my mind a touchstone for a proper redesign of this layer is that
the checkpoint process should not be handicapped by not being a full
backend. Right now, all checkpoint buffer writes happen via
smgrblindwrt, which is a nontrivial performance loss. Ideally the
notion of "blind write" should go away, because you shouldn't need
anything more than the RelFileNode and block number, which are both
available from the shared buffer descriptor.

Tablespaces per se will likely require adding an additional field to
RelFileNode, but that's a separate consideration.

regards, tom lane

#3Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Christopher Kings-Lynne (#1)
Re: tablespace patch

Well, they shouldn't be using Relations, for sure. Something based
on knowing only RelFileNode would be appropriate. Vadim wrote a few
messages about this back when he was still active --- check the
archives.

In my mind a touchstone for a proper redesign of this layer is that
the checkpoint process should not be handicapped by not being a full
backend. Right now, all checkpoint buffer writes happen via
smgrblindwrt, which is a nontrivial performance loss. Ideally the
notion of "blind write" should go away, because you shouldn't need
anything more than the RelFileNode and block number, which are both
available from the shared buffer descriptor.

Hmmm...might be a bit out of my league... I'll look into it all, but
something tells me it'll take me quite a while :)

Chris