Got it. can someone point me to more reading on snapshots and snapshot-horizon?
Thanks!
On Fri, Jun 21, 2019, at 10:08 AM, Tom Lane wrote:
SBob <sbob@xxxxxxxxxxxxxxxxxxxxx> writes:> I do see older backend_start values (from around 6 hours ago). However I am confused as to how a connection to one database in a cluster can prevenr vacuum from cleaning up row versions in a table within another database. How is that possible since onle one database has access to this table?Because the snapshot-horizon calculations are done system-wide.We can't just lobotomize them to only consider the current DB,because that would result in wrong row-cleanup decisions for sharedcatalogs.There are some attempts to refine that when vacuuming a non-shared table,but that can only go so far given the limited amount of state thatbackends expose about this. Doing better would require expendingmore effort in transaction start/transaction stop/snapshot creation,which are hot spots so it hasn't seemed like it'd be a good tradeoff.regards, tom lane