Thanks guys for the valuable info. The key take away for me is clear: keep transactions short under all circumstances.
Cheers, Eduard Am Fr., 1. Dez. 2023 um 01:31 Uhr schrieb Andres Freund <and...@anarazel.de >: > Hi, > > On 2023-11-30 18:51:35 -0500, Tom Lane wrote: > > On what grounds do you assert that? Operations on shared catalogs > > are visible across databases. Admittedly they can't be written by > > ordinary DML, and I'm not sure that we make any promises about DDL > > writes honoring serializability. But I'm unwilling to add > > "optimizations" that assume that that will never happen. > > I'd say the issue is more that it's quite expensive to collect the > information. I tried in the past to make the xmin computation in > GetSnapshotData() be database specific, but it quickly shows in profiles, > and > GetSnapshotData() unfortunately is really performance / scalability > critical. > > If that weren't the case, we could check a shared horizon for shared > tables, > and a non-shared horizon otherwise. > > In some cases we can compute a "narrower" horizon when it's worth the cost, > but quite often we lack the necessary data, because various backends have > stored the "global" xmin in the procarray. > > Greetings, > > Andres Freund >