Re: [HACKERS] Single pass vacuum - take 2

2011-11-02 Thread Robert Haas
On Fri, Sep 23, 2011 at 12:37 PM, Robert Haas 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. Before my memory fades

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

Re: [HACKERS] Single pass vacuum - take 2

2011-09-23 Thread Robert Haas
On Tue, Aug 30, 2011 at 6:38 AM, Pavan Deolasee 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 comfortable with the hand

Re: [HACKERS] Single pass vacuum - take 2

2011-08-30 Thread Pavan Deolasee
On Tue, Aug 23, 2011 at 2:47 AM, Jim Nasby 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 line p

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

[HACKERS] Single pass vacuum - take 2

2011-08-21 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 generati