backend_xmin in pg_stat_replication - Mailing list pgsql-general

From Torsten Förtsch
Subject backend_xmin in pg_stat_replication
Date
Msg-id CAKkG4_nHbvF7K6k1AAwdOQ=3fXbSWNe_n_v7JLTAvn=K_ADRag@mail.gmail.com
Whole thread Raw
Responses Re: backend_xmin in pg_stat_replication
List pgsql-general
Hi,

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:

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

pgsql-general by date:

Previous
From: Dmitry Igrishin
Date:
Subject: Re: libpq.dll question
Next
From: Dean Rasheed
Date:
Subject: Re: Postgres trigger side-effect is occurring out of order withrow-level security select policy