Re: [HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Tom Lane
"Zeugswetter Andreas ADI SD" <[EMAIL PROTECTED]> writes: > ...This looks like a problem, since we might end up with a page filled with > LP_DEAD slots, that all have no visibility info and can thus not be > cleaned by vacuum. No, it's the other way round: an LP_DEAD item pointer can *always* be cl

Re: [HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Pavan Deolasee
On 9/13/07, Zeugswetter Andreas ADI SD <[EMAIL PROTECTED]> wrote: > > > > The COLD updated (old) tuple would be pruned to dead line pointer > > once the tuple becomes DEAD. Normally that would let us reuse the > > tuple storage for other purposes. We do the same for DELETEd tuples. > > Oh, I though

Re: [HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Zeugswetter Andreas ADI SD
> The COLD updated (old) tuple would be pruned to dead line pointer > once the tuple becomes DEAD. Normally that would let us reuse the > tuple storage for other purposes. We do the same for DELETEd tuples. Oh, I thought only pruned tuples from HOT chains can produce a "redirect dead" line point

Re: [HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Pavan Deolasee
On 9/13/07, Zeugswetter Andreas ADI SD <[EMAIL PROTECTED]> wrote: > > > > CREATE TABLE test (a int, b char(200)); > > CREATE UNIQUE INDEX testindx ON test(a); > > INSERT INTO test VALUES (1, 'foo'); > > > > Now, if we repeatedly update the tuple so that each update is a > > COLD update, we would bl

Re: [HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Zeugswetter Andreas ADI SD
> CREATE TABLE test (a int, b char(200)); > CREATE UNIQUE INDEX testindx ON test(a); > INSERT INTO test VALUES (1, 'foo'); > > Now, if we repeatedly update the tuple so that each update is a > COLD update, we would bloat the page with redirect-dead line pointers. Um, sorry for not understanding,

Re: [HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Pavan Deolasee
On 9/13/07, Tom Lane <[EMAIL PROTECTED]> wrote: > > > > The difficulty with this is having to be 100% confident that noplace in > the system tries to dereference a TID without checking that the line > number (offset) is within range. At one time that was demonstrably > not so. I think we've clean

Re: [HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Tom Lane
"Pavan Deolasee" <[EMAIL PROTECTED]> writes: > How about passing a boolean to PageRepairFragmentation to > command it to reclaim unused line pointers ? The difficulty with this is having to be 100% confident that noplace in the system tries to dereference a TID without checking that the line numbe

[HACKERS] HOT line pointer bloat and PageRepairFragmentation

2007-09-13 Thread Pavan Deolasee
We know that HOT can cause line pointer bloat because of redirect dead line pointers. In the worst case there could be MaxHeapTuplesPerPage redirect-dead line pointers in a page. VACUUM can reclaim these line pointers and mark them ~LP_USED (what is now called LP_UNUSED). But we don't reclaim the