Robert Haas wrote: > > ? ?xidForceLimit = recentXid - autovacuum_freeze_max_age; > > ? ?if (xidForceLimit < FirstNormalTransactionId) > > ? ? ? ?xidForceLimit -= FirstNormalTransactionId; > > > > The values: > > > > ? ? ? ?xidForceLimit ? Result > > ? ? ? ?--------------------------- > > ? ? ? ?max_xid-2 ? ? ? max_xid-2 > > ? ? ? ?max_xid-1 ? ? ? max_xid-1 > > ? ? ? ?max_xid ? ? ? ? max_xid > > ? ? ? ?0 ? ? ? ? ? ? ? max_xid-3 ? ? ? <- backward here > > ? ? ? ?1 ? ? ? ? ? ? ? max_xid-2 > > ? ? ? ?2 ? ? ? ? ? ? ? max_xid-1 > > ? ? ? ?3 ? ? ? ? ? ? ? 3 > > You have to consider those three lines all of a piece. Suppose > autovacuum_freeze_age is 100. Then: > > 105 -> 5 > 104 -> 4 > 103 -> 3 > 102 -> max_xid > 101 -> max_xid - 1 > 100 -> max_xid - 2
OK, just keep going below 100: 105 -> 5 104 -> 4 103 -> 3 102 -> max_xid 101 -> max_xid - 1 100 -> max_xid - 2 99 -> max_id 98 -> max_id -1 Wouldn't you rather: 105 -> 5 104 -> 4 103 -> 3 102 -> 3 101 -> 3 100 -> 3 99 -> max_id 98 -> max_id -1 -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers