Thread: What is an 'unused item pointer'

What is an 'unused item pointer'

From
"Jim C. Nasby"
Date:
I can't seem to find info about this in the docs, or on the web.
--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

Re: What is an 'unused item pointer'

From
Tom Lane
Date:
"Jim C. Nasby" <jnasby@pervasive.com> writes:
> I can't seem to find info about this in the docs, or on the web.

http://developer.postgresql.org/docs/postgres/storage-page-layout.html

Currently, when a tuple is reclaimed by VACUUM, we just mark its item
pointer as unused (and hence recyclable).  I think it might be safe to
decrease pd_lower if there are unused pointers at the end of the page's
pointer array, but we don't currently do that.  In any case there could
still be unused pointers embedded within the array.

            regards, tom lane

Re: What is an 'unused item pointer'

From
"Jim C. Nasby"
Date:
On Sat, Sep 24, 2005 at 07:19:10PM -0400, Tom Lane wrote:
> "Jim C. Nasby" <jnasby@pervasive.com> writes:
> > I can't seem to find info about this in the docs, or on the web.
>
> http://developer.postgresql.org/docs/postgres/storage-page-layout.html
>
> Currently, when a tuple is reclaimed by VACUUM, we just mark its item
> pointer as unused (and hence recyclable).  I think it might be safe to
> decrease pd_lower if there are unused pointers at the end of the page's
> pointer array, but we don't currently do that.  In any case there could
> still be unused pointers embedded within the array.

I suspect that if the free space in pages isn't collapsed during vacuum
then it probably doesn't matter, but I don't know if that's the case. If
it is collapsed then my intuition is that tables that are fairly narrow
would benefit from adjusting pd_lower because it wouldn't take too many
item pointers to equate to a tuple. This would probably be even more
pronounced if the tuples were generally small but could vary to a larger
size.

Sounds like a good newbie TODO?
--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

Re: What is an 'unused item pointer'

From
Tom Lane
Date:
"Jim C. Nasby" <jnasby@pervasive.com> writes:
> On Sat, Sep 24, 2005 at 07:19:10PM -0400, Tom Lane wrote:
>> Currently, when a tuple is reclaimed by VACUUM, we just mark its item
>> pointer as unused (and hence recyclable).  I think it might be safe to
>> decrease pd_lower if there are unused pointers at the end of the page's
>> pointer array, but we don't currently do that.

> Sounds like a good newbie TODO?

Uh, no, because the $64 question is whether it actually *is* safe, or
perhaps would be safe with more locking than we do now.  I'm not sure of
the answer myself, and would have zero confidence in a newbie's answer.

Decreasing pd_lower would definitely be a win if we can do it free or
cheaply.  If it requires significant additional locking overhead, then
maybe not.

            regards, tom lane

Re: What is an 'unused item pointer'

From
"Jim C. Nasby"
Date:
On Sun, Sep 25, 2005 at 12:09:24AM -0400, Tom Lane wrote:
> "Jim C. Nasby" <jnasby@pervasive.com> writes:
> > On Sat, Sep 24, 2005 at 07:19:10PM -0400, Tom Lane wrote:
> >> Currently, when a tuple is reclaimed by VACUUM, we just mark its item
> >> pointer as unused (and hence recyclable).  I think it might be safe to
> >> decrease pd_lower if there are unused pointers at the end of the page's
> >> pointer array, but we don't currently do that.
>
> > Sounds like a good newbie TODO?
>
> Uh, no, because the $64 question is whether it actually *is* safe, or
> perhaps would be safe with more locking than we do now.  I'm not sure of
> the answer myself, and would have zero confidence in a newbie's answer.
>
> Decreasing pd_lower would definitely be a win if we can do it free or
> cheaply.  If it requires significant additional locking overhead, then
> maybe not.

Ok, sounds like a non-newbie TODO then. :)
--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461