Heikki Linnakangas <hlinn...@iki.fi> writes: > On 08/10/2016 05:09 PM, Tom Lane wrote: >> Uh, what? That's not the semantics we have today, and I don't see why >> it's necessary or a good idea. Once the commit is in the WAL stream, >> any action taken on the basis of seeing the commit must be later in >> the WAL stream. So what's the problem?
> I was talking about synchronous commits in the above. A synchronous > commit is not made visible to other transactions, until the commit WAL > record is flushed to disk. [ thinks for a bit... ] Oh, OK, that's because we don't treat a transaction as committed until its clog bit is set *and* it's not marked as running in the PGPROC array. And sync transactions will flush WAL in between. Still, having to invent CSNs seems like a huge loss for this design. Personally I'd give up async commit first. If we had only sync commit, the rule could be "xact LSN less than snapshot threshold and less than WAL flush position", and we'd not need CSNs. I know some people like async commit, but it's there because it was easy and cheap in our old design, not because it's the world's greatest feature and worth giving up performance for. regards, tom lane -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers