From: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Usage of epoch in txid_current |
Date: | 2017-12-05 03:19:10 |
Message-ID: | CAA4eK1+Mv+mb0HFfWM9Srtc6MVe160WFurXV68iAFMcagRZ0dQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
Currently, txid_current and friends export a 64-bit format of
transaction id that is extended with an “epoch” counter so that it
will not wrap around during the life of an installation. The epoch
value it uses is based on the epoch that is maintained by checkpoint
(aka only checkpoint increments it).
Now if epoch changes multiple times between two checkpoints
(practically the chances of this are bleak, but there is a theoretical
possibility), then won't the computation of xids will go wrong?
Basically, it can give the same value of txid after wraparound if the
checkpoint doesn't occur between the two calls to txid_current.
Am I missing something which ensures that epoch gets incremented at or
after wraparound?
--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2017-12-05 03:53:25 | Re: [HACKERS] pow support for pgbench |
Previous Message | Noah Misch | 2017-12-05 03:15:56 | Re: REPLICA IDENTITY FULL |