[Bucardo-general] Make Delta modifies txntime
Andreas Wahler
andreas.wahler at wamtek.net
Fri Apr 10 14:23:56 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