Hi, On 2018-08-31 19:53:43 -0400, Tom Lane wrote: > My thought is to do (and back-patch) my change, and then work on yours > as a performance improvement for HEAD only.
That does make sense. > I don't believe that yours would make mine redundant, either --- they > are good complementary changes to make real sure we have no remaining > bugs of this ilk. (In particular, no matter how much de-duplication > we do, we'll still have scenarios with recursive cache flushes; so I'm > not quite convinced that your solution provides a 100% fix by itself.) Yea this is a fair concern. One concern I have with your approach is that it isn't particularly bullet-proof for cases where the rebuild is triggered by something that doesn't hold a conflicting lock. If there's an independent cause to reload - something that very commonly happens - we might not necessarily re-trigger the recursive reloads. That *should* be safe due such changes hopefully being "harmless", but it's a bit disconcerting nonetheless. Greetings, Andres Freund