Re: Page at a time index scan - Mailing list pgsql-patches

From Tom Lane
Subject Re: Page at a time index scan
Date
Msg-id 17559.1146677969@sss.pgh.pa.us
Whole thread Raw
In response to Re: Page at a time index scan  (Simon Riggs <simon@2ndquadrant.com>)
Responses Re: Page at a time index scan
List pgsql-patches
Simon Riggs <simon@2ndquadrant.com> writes:
> So do you see a problem scenario like this?

> A, B and C separate backends:
> A1 Reads page, some row versions are *not* marked LP_DELETE but will be
> later when A2 happens
>     B1 VACUUM removes dead rows, just happens to be all of them
>     B2 Recycles page into FSM
>         C1 Inserts new data into old page
> A2 Attempts to update old page to notify about dead rows (UGH!)

Can't happen; a page cannot be recycled until all concurrent
transactions are gone.  In any case, the LP_DELETE marking code will
certainly take care to check that the entries it's trying to mark
are still the same ones it meant to mark.

            regards, tom lane

pgsql-patches by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Page at a time index scan
Next
From: Simon Riggs
Date:
Subject: Re: Page at a time index scan