[Bucardo-general] please help with this.
Grant Maxwell
grant.maxwell at maxan.com.au
Mon Feb 1 07:37:09 UTC 2010
Hi folks
Anyone got more for this for me ? This is crucial not just for me but for anyone who has significant numbers of unique constraint violations that need to be dealt with. You can see from the log snippet below that we get into a loop of deleting 180000 (approx) records (based on 10,000 per chunk), copying 170000 + some, discovering a conflict, running the custom code to resolve the conflict and then starting the entire set all over again, only to find another conflict and so starting again all over.
Is this a design flaw ? All of the records are being prevented from replication by individual events. Surely the majority of the records should replicate. This would happen correctly if each chunk was deleted and copied as a transaction. some chunks would fail and need correction but it would not mean failing every chunk and would not mean copying the entire record set again.
please please please look at this.
regards
Grant
What I am seeing all day in the log is
Feb 1 19:21:21 console Bucardo[16368]: KID Deleting chunk 4
Feb 1 19:21:21 console Bucardo[16368]: KID Deleting chunk 5
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 6
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 7
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 8
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 9
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 10
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 11
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 12
Feb 1 19:21:22 console Bucardo[16368]: KID Deleting chunk 13
Feb 1 19:21:23 console Bucardo[16368]: KID Deleting chunk 14
Feb 1 19:21:23 console Bucardo[16368]: KID Deleting chunk 15
Feb 1 19:21:23 console Bucardo[16368]: KID Deleting chunk 16
Feb 1 19:21:23 console Bucardo[16368]: KID Deleting chunk 17
Feb 1 19:21:23 console Bucardo[16368]: KID Deleting chunk 18
Feb 1 19:21:23 console Bucardo[16368]: KID Begin COPY to public.tblmailaddresslist
Feb 1 19:21:24 console Bucardo[16368]: KID Copying chunk 1 from t2 to messagestore
Feb 1 19:21:28 console Bucardo[16368]: KID Copying chunk 2 from t2 to messagestore
Feb 1 19:21:32 console Bucardo[16368]: KID Copying chunk 3 from t2 to messagestore
Feb 1 19:21:37 console Bucardo[16368]: KID Copying chunk 4 from t2 to messagestore
Feb 1 19:21:42 console Bucardo[16368]: KID Copying chunk 5 from t2 to messagestore
.......
Feb 1 19:22:37 console Bucardo[16368]: KID Copying chunk 18 from t2 to messagestore
Feb 1 19:22:38 console Bucardo[16368]: KID Exception caught: DBD::Pg::db pg_putcopyend failed: ERROR: duplicate key value violates unique constraint "tblmailaddresslist_emailaddress_key"\nCONTEXT: COPY tblmailaddresslist, line 2: "1281808^Ikellyvenhuizen at hotmail.com^I2009-12-03 18:04:35.927361+11^If^I4^I0^I0^I0" at /usr/local/share/perl/5.10.0/Bucardo.pm line 4925.
Feb 1 19:22:38 console Bucardo[16368]: KID Rolling back to target savepoint, due to database error: DBD::Pg::db pg_putcopyend failed: ERROR: duplicate key value violates unique constraint "tblmailaddresslist_emailaddress_key"\nCONTEXT: COPY tblmailaddresslist, line 2: "1281808^Ikellyvenhuizen at hotmail.com^I2009-12-03 18:04:35.927361+11^If^I4^I0^I0^I0" at /usr/local/share/perl/5.10.0/Bucardo.pm line 4925.
Feb 1 19:22:38 console Bucardo[16368]: KID ELS mod set rowinfo pkey to 1281808
Feb 1 19:22:38 console Bucardo[16368]: KID Trying exception code 1: mailaddress_in
Feb 1 19:22:38 console Bucardo[16368]: KID Running exception custom code 1: mailaddress_in
Feb 1 19:22:38 console Bucardo[16368]: KID Finished custom code 1
Feb 1 19:22:38 console Bucardo[16368]: KID Message from exception code 1: ELS updating from db: t2 pkmailid 1281808 to 1533518 for addresskellyvenhuizen at hotmail.com
Feb 1 19:22:38 console Bucardo[16368]: KID Warning! Code exception 1: UPDATE affected 1 rows
Feb 1 19:22:38 console Bucardo[16368]: KID Exception handler thinks we can try again
Feb 1 19:22:47 console Bucardo[16368]: KID Deleting rows from public.tblmailaddresslist
Feb 1 19:22:48 console Bucardo[16368]: KID Deleting chunk 1
Feb 1 19:22:48 console Bucardo[16368]: KID Deleting chunk 2
Feb 1 19:22:48 console Bucardo[16368]: KID Deleting chunk 3
Feb 1 19:22:49 console Bucardo[16368]: KID Deleting chunk 4
Feb 1 19:22:49 console Bucardo[16368]: KID Deleting chunk 5
And so repeats the cycle.
On 31/01/2010, at 4:27 PM, Grant Maxwell wrote:
> Hi
>
> I am doing a master - master - master replication using custom conflict management code. It all works quite well, however
> I get a LOT of conflicts and syncs in some cases have to deal with thousands of records at a time.
>
> The problem is that each time it deals with a conflict and tells bucardo to "try again" bucardo has to deal with all those thousands of records again. and again.
>
>
> I would like to limit how many records bucardo is allowed to replicate in one sync. This would mean we are running more syncs, but more of them would succeed.
>
> Would another approach be for bucardo to simply mark the conflicts and deal with them at the end so that the bulk of the sync works. It could then feed the conflicts to
> the custom code which would deal with them in a flash.
>
> Can anyone help with this please ?
>
> I'm using 4.4.0.
>
> regards
> Grant
> _______________________________________________
> Bucardo-general mailing list
> Bucardo-general at bucardo.org
> https://mail.endcrypt.com/mailman/listinfo/bucardo-general
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20100201/54a99fd1/attachment.html
More information about the Bucardo-general
mailing list