On Fri, Jul 17, 2015 at 4:16 AM, Florent Guiliani <florent@guiliani.fr> wrote:
>> but such an LSN need not exist. Suppose A writes a commit record at
>> LSN 0/10000, and then B writes a commit record at 0/10100, and then B
>> calls ProcArrayEndTransaction(). At this point, B is visible and A is
>> not visible, even though A's commit record precedes that of B.
>
> Maybe that's what Andres referred as "doable with some finicky locking".
>
> There is some race conditions to build a snapshot with an associated
> consistent LSN. If I understand your example, A is supposed to call
> ProcArrayEndTransaction() anytime soon.
Right.
> Could we wait/lock until it
> happens?
In theory, yes. I'm not sure what the code would would look like, though.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company