[Bucardo-general] Make Delta modifies txntime

Andreas Wahler andreas.wahler at wamtek.net
Fri Apr 10 14:21:30 UTC 2015


Dear all,

I was wondering whether this is a bug or a feature: If make_delta is 
active, all received rows inserted within the corresponding "delta_" 
table gets a new timestamp.

We've installed Bucardo 5.3.1 on two servers, B and C, autokick is off.

Syncs on server B:
sync1: ServerA:source <-> ServerB:source

Syncs on server C:
sync2: ServerC:source <-> ServerB:source
sync3: ServerC:source <-> ServerD:source
sync4: ServerC:source <-> ServerE:source

Make-Delta is active on server B in order to transfer stuff from A to C.
Also Make-Delta is active on server C to bring things to D and E.

If we make an update on server A inside table "table1" the 
"delta_table1" table is filled by update trigger:

Server A / delta_table1

   nr  |            txntime
------+-------------------------------
  3880 | 2015-04-09 10:05:12.745992+02

Now, the sync "sync1" is kicked _one day later_ and changed rows are 
copied from A to B back and forth. Afterwards the "delta_table1" on 
server B looks like this:


Server B / delta_table1

   nr  |            txntime
------+-------------------------------
  3880 | 2015-04-10 11:01:07.755992+02


The received data form A are stored in B's delta_table1 as expected in 
order to transfer them on to other syncs, but received a new timestamp:

The question is, why is the txntime field changed by sync?

If we now start the second sync "sync2" on server C it will receive the 
changed record no. 3880 and compares the "wrong" timestamp.

If the same record was changed on C at "2015-04-10 09:11:33" and 
conflict strategy is set to "bucardo_latest" the following dates will be 
compared:

(Server A: 2015-04-09 10:05:12)
Server B: 2015-04-10 11:01:07
Server C: 2015-04-10 09:11:33

And the winner is: B (should be C in this case).

Can someone clarify this for me?

Thank you in advance,

Andreas


More information about the Bucardo-general mailing list