Re: performance issue in remove_from_unowned_list()
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-03-12T22:54:31Z
Lists: pgsql-hackers
Attachments
- smgr-dlist-wip-fix.patch (text/x-patch) patch
On 3/10/19 9:09 PM, Alvaro Herrera wrote: > On 2019-Feb-07, Tomas Vondra wrote: > >> Attached is a WIP patch removing the optimization from DropRelationFiles >> and adding it to smgrDoPendingDeletes. This resolves the issue, at least >> in the cases I've been able to reproduce. But maybe we should deal with >> this issue earlier by ensuring the two lists are ordered the same way >> from the very beginning, somehow. > > I noticed that this patch isn't in the commitfest. Are you planning to > push it soon? > I wasn't planning to push anything particularly soon, for two reasons: Firstly, the issue is not particularly pressing except with non-trivial number of relations (and I only noticed that during benchmarking). Secondly, I still have a feeling I'm missing something about b4166911 because for me that commit does not actually fix the issue - i.e. I can create a lot of relations in a transaction, abort it, and observe that the replica actually accesses the relations in exactly the wrong order. So that commit does not seem to actually fix anything. Attached is a patch adopting the dlist approach - it seems to be working quite fine, and is a bit cleaner than just slapping another pointer into the SMgrRelationData struct. So I'd say this is the way to go. I see b4166911 was actually backpatched to all supported versions, on the basis that it fixes oversight in 279628a0a7. So I suppose this fix should also be backpatched. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Track unowned relations in doubly-linked list
- 31737eb43ffd 9.4.22 landed
- 261aa218c9a0 9.5.17 landed
- 0a5dcb87aec7 9.6.13 landed
- 5601f9fb97d1 10.8 landed
- fb0b5b0b84a0 11.3 landed
- 6ca015f9f073 12.0 landed