You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
Previously autovacuum was not necessarily triggered if space in themembers slru got tight. The first problem was that the signalling wastied to values in the offsets slru, but members can advance muchfaster. Thats especially a problem if old sessions had been around thatpreviously prevented the multixact horizon to increase. Secondly theskipping logic doesn't work if the database was restarted afterautovacuum was triggered - that knowledge is not preserved acrossrestart. This is especially a problem because it's a commonpanic-reaction to restart the database if it gets slow toanti-wraparound vacuums.Fix the first problem by separating the logic for members fromoffsets. Trigger autovacuum whenever a multixact crosses a segmentboundary, as the current member offset increases in irregular values, sowe can't use a simple modulo logic as for offsets. Add a stopgap forthe second problem, by signalling autovacuum whenver ERRORing outbecause of boundaries.Discussion: 20150608163707.GD20772@alap3.anarazel.deBackpatch into 9.3, where it became more likely that multixacts wraparound.
errhint("Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings.",