Hot standby and b-tree killed items - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Hot standby and b-tree killed items
Date
Msg-id 494B5FFE.4090909@enterprisedb.com
Whole thread Raw
Responses Re: Hot standby and b-tree killed items  (Simon Riggs <simon@2ndQuadrant.com>)
Re: Hot standby and b-tree killed items  (Greg Stark <greg.stark@enterprisedb.com>)
List pgsql-hackers
Whenever a B-tree index scan fetches a heap tuple that turns out to be 
dead, the B-tree item is marked as killed by calling _bt_killitems. When 
the page gets full, all the killed items are removed by calling 
_bt_vacuum_one_page.

That's a problem for hot standby. If any of the killed b-tree items 
point to a tuple that is still visible to a running read-only 
transaction, we have the same situation as with vacuum, and have to 
either wait for the read-only transaction to finish before applying the 
WAL record or kill the transaction.

It looks like there's some cosmetic changes related to that in the 
patch, the signature of _bt_delitems is modified, but there's no actual 
changes that would handle that situation. I didn't see it on the TODO on 
the hot standby wiki either. Am I missing something, or the patch?

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: "Asko Oja"
Date:
Subject: Re: Summary: changes needed in function defaults behavior
Next
From: Simon Riggs
Date:
Subject: Re: Sync Rep: First Thoughts on Code