On Tue, Sep 19, 2017 at 4:47 PM, Claudio Freire <klaussfre...@gmail.com> wrote: > Maybe this is looking at the problem from the wrong direction. > > Why can't the page be added to the FSM immediately and the check be > done at runtime when looking for a reusable page? > > Index FSMs currently store only 0 or 255, couldn't they store 128 for > half-recyclable pages and make the caller re-check reusability before > using it?
No, because it's impossible for them to know whether or not the page that their index scan just landed on recycled just a second ago, or was like this since before their xact began/snapshot was acquired. For your reference, this RecentGlobalXmin interlock stuff is what Lanin & Shasha call "The Drain Technique" within "2.5 Freeing Empty Nodes". Seems pretty hard to do it any other way. -- Peter Geoghegan -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers