Re: [HACKERS] Single pass vacuum - take 2

2011-11-02 Thread Robert Haas
On Fri, Sep 23, 2011 at 12:37 PM, Robert Haas robertmh...@gmail.com wrote: I'm still not really comfortable with the handling of vacuum generation numbers. Pavan and I spent a bit of time today talking about how many vacuum generation numbers we need to have in order for this scheme to work.

Re: [HACKERS] Single pass vacuum - take 2

2011-10-01 Thread Jim Nasby
On Sep 23, 2011, at 11:37 AM, Robert Haas wrote: Another thing I'm not sure whether to worry about is the question of where we store the vacuum generation information. I mean, if we store it in pg_class, then what happens if the user does a manual update of pg_class just as we're updating the

Re: [HACKERS] Single pass vacuum - take 2

2011-09-23 Thread Robert Haas
On Tue, Aug 30, 2011 at 6:38 AM, Pavan Deolasee pavan.deola...@gmail.com wrote: Yeah. If we don't know the status of the vacuum that collected the line pointer and marked it vacuum-dead, the next vacuum will pick it up again and stamp it with its own generation number. I'm still not really

Re: [HACKERS] Single pass vacuum - take 2

2011-08-30 Thread Pavan Deolasee
On Tue, Aug 23, 2011 at 2:47 AM, Jim Nasby j...@nasby.net wrote: On Aug 22, 2011, at 1:22 AM, Pavan Deolasee wrote: Hi All, Here is a revised patch based on our earlier discussion. I implemented Robert's idea of tracking the vacuum generation number in the line pointer itself. For LP_DEAD

[HACKERS] Single pass vacuum - take 2

2011-08-22 Thread Pavan Deolasee
Hi All, Here is a revised patch based on our earlier discussion. I implemented Robert's idea of tracking the vacuum generation number in the line pointer itself. For LP_DEAD line pointers, the lp_off/lp_len is unused (and always set to 0 for heap tuples). We use those 30 bits to store the

Re: [HACKERS] Single pass vacuum - take 2

2011-08-22 Thread Jim Nasby
On Aug 22, 2011, at 1:22 AM, Pavan Deolasee wrote: Hi All, Here is a revised patch based on our earlier discussion. I implemented Robert's idea of tracking the vacuum generation number in the line pointer itself. For LP_DEAD line pointers, the lp_off/lp_len is unused (and always set to 0