Hi all, I'm doing some experiments on a cluster to see what happens at xid wraparound, and I'm approaching it. There is no activity in any database but testdb. Scenario: I've a procedure that is consuming all xids, while another connection is inserting a tuple every 20 minutes or so in a table, just to prevent autovacuum to freeze in emergency. autovacuum is globally turned off. Therefore, I'm approaching wraparound: testdb=> select datname, datfrozenxid, age( datfrozenxid ), txid_current() from pg_database;WARNING: database "postgres" must be vacuumed within 7989757 transactions HINT: To avoid a database shutdown, execute a database-wide VACUUM in that database. You might also need to commit or roll back old prepared transactions, or drop stale replication slots. datname | datfrozenxid | age | txid_current -----------+--------------+------------+-------------- postgres | 1221679879 | 2139493890 | 11951108361 backupdb | 1221679879 | 2139493890 | 11951108361 template1 | 1221679879 | 2139493890 | 11951108361 template0 | 1221679879 | 2139493890 | 11951108361 testdb | 1221679879 | 2139493890 | 11951108361 pgbench | 1221679879 | 2139493890 | 11951108361 (6 rows) What puzzles me is that I'm somehow "locking" the testdb.wa table (by inserting a tuple every 20 minutes), so all other tables and databases are free to be frozen by an emergency autovacuum. And I was expecting the problem to happen due to the testdb.wa table, and therefore the hint message to be related to "testdb", not "postgres" database. Digging I found that all the database are becoming old, and all the tables in every database has the same age. Therefore my question is: shouldn't autovacuum be able to freeze other tables/databases? I mean, the wraparound problem in this scenario will cause problems, but I was expecting different numbers for different tables/databases. The other question is: the xid is defined as a 32 bit integer: typedef uint32 TransactionId; but it is exposed as a 64 bit integer typedef uint64 txid; appending EpochFromFullTransactionId (that I'm not able to find in the sources). The dumb question then is: why use the 32 bit machinery if the txid is exposed as 64 bit wide value? Thanks, Luca