From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
Cc: | Andres Freund <andres(at)anarazel(dot)de>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Andrey Borodin <x4mmm(at)yandex-team(dot)ru> |
Subject: | Re: Usage of epoch in txid_current |
Date: | 2019-03-28 05:29:47 |
Message-ID: | CA+hUKGL_gdN_wqQXCY6it5pDvphYkFdeehkFzMbO+YtL4_L_Kg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Mar 28, 2019 at 1:48 AM Heikki Linnakangas <hlinnaka(at)iki(dot)fi> wrote:
> Once we have the FullTransactionId type and basic macros in place, I'm
> sure we could tidy up a bunch of code by using them. For example,
> TransactionIdInRecentPast() in walsender.c would be simpler, if the
> caller dealt with FullTransactionIds rather than xid+epoch. But it makes
> sense to do that separately.
+1
> > + /*
> > + * It is safe to read nextFullXid without a lock, because this is only
> > + * called from the startup process, meaning that no other process can
> > + * modify it.
> > + */
> > + Assert(AmStartupProcess());
> > +
>
> This assertion fails on WAL replay in single-user mode:
Fixed. (Embarrassingly I had that working in v7 but broke it in v8).
I decided to do some testing on a 32 bit system, and ran into weird
new problem in heap_compute_xid_horizon_for_tuples() which I assumed
to be somehow my fault due to the mention of xid horizons, but I
eventually realised that master was broken on that machine and
followed that up elsewhere. Phew.
Thanks for the reviews! Pushed.
--
Thomas Munro
https://enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Darafei Komяpa Praliaskouski | 2019-03-28 05:34:34 | Re: Berserk Autovacuum (let's save next Mandrill) |
Previous Message | Tom Lane | 2019-03-28 05:03:21 | Re: speeding up planning with partitions |