Thread: tablespace patch

tablespace patch

From
"Christopher Kings-Lynne"
Date:
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



Re: tablespace patch

From
Tom Lane
Date:
"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



Re: tablespace patch

From
"Christopher Kings-Lynne"
Date:
> 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