Jim Nasby wrote:
> On 11/1/14, 8:41 AM, Petr Jelinek wrote:
> >Well this is not BDR specific thing, the idea is that with logical 
> >replication, commit timestamp is not enough for conflict handling, you also 
> >need to have additional info in order to identify some types of conflicts 
> >conflicts (local update vs remote update for example). So the extradata 
> >field was meant as something that could be used to add the additional info 
> >to the xid.
> 
> Related to this... is there any way to deal with 2 transactions that commit 
> in the same microsecond? It seems silly to try and handle that for every 
> commit since it should be quite rare, but perhaps we could store the LSN as 
> extradata if we detect a conflict?

Well, two things.  One, LSN is 8 bytes and extradata (at least in this
patch when I last saw it) is only 4 bytes.  But secondly and more
important is that detecting a conflict is done in node B *after* node A
has recorded the transaction's commit time; there is no way to know at
commit time that there is going to be a conflict caused by that
transaction in the future.  (If there was a way to tell, you could just
as well not commit the transaction in the first place.)

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to