Thread: tablespace patch
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
"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
> 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