Hi,
application_name | txid_snapshot_xmin | backend_xmin | ?column?
------------------+--------------------+--------------+------------
xxxxxxxxxx | 6957042833 | 2662075435 | 4294967398
if I understand it correctly, backend_xmin in pg_stat_replication is the xmin that's reported back by hot_standby_feedback. Given there are no long-running transactions on the replica, I presume that value should be pretty close to the xmin field of any recent snapshots on the master. This is true for all my databases but one:
select application_name,
txid_snapshot_xmin(txid_current_snapshot()),
backend_xmin::TEXT::BIGINT,
txid_snapshot_xmin(txid_current_snapshot())-backend_xmin::TEXT::BIGINT
from pg_stat_replication;
application_name | txid_snapshot_xmin | backend_xmin | ?column?
------------------+--------------------+--------------+------------
xxxxxxxxxx | 6957042833 | 2662075435 | 4294967398
Over time, that backend_xmin is slowly advancing.
If I call txid_current_snapshot() in a new session on the replica, I get reasonable numbers but the backend_xmin in pg_stat_activity is equally off.
select backend_xmin, txid_current_snapshot()
from pg_stat_activity
where backend_xmin is not null;
backend_xmin | txid_current_snapshot
--------------+------------------------
2662207433 | 6957174729:6957174729:
--------------+------------------------
2662207433 | 6957174729:6957174729:
Is that expected behavior? Or is there anything wrong?
All other backends are idle and all but one pretty fresh. One has been running for about 2 months with short-lasting transactions every now and again.
Thanks,
Torsten