On Wed, 2006-05-03 at 13:39 -0400, Tom Lane wrote: > Simon Riggs <[EMAIL PROTECTED]> 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.
! So do you see a problem with page deletion, or not? If so, what is it? This patch looks good to me, based upon everything said. -- Simon Riggs EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings