IMO, the effort to disentangle the patch in the attached email by
feature far exceeds the incremental effort to set the chunk size from
the configuration - due to code refactoring as a prerequisite for both.
If the latter is acceptable, I can take a stab at it. Which B4 version
was the first one that allowed chunk size to be configured?
-ar
On 01/24/2013 09:39 PM, Greg Sabino Mullane wrote:
On Thu, Dec 27, 2012 at 12:28:44AM -0600, Armin B. Resch wrote:
Hi Greg,
there's a patch attached at
http://bucardo.org/bugzilla/show_bug.cgi?id=77 which contains only a
solution for unique keys containing NULLs, but I don't recommend
using it since it does not contain the refactoring of the second
loop over the @$info array. It's harder to read, too.
Ha, ha, ha! Well, that's honest of you. Good to have it out there,
maybe someone can finish it up someday so we can get this fixed.
Everyone else on this list: hint, hint.
--- Begin Message ---
Bucardoans,
we had a situation in which our memory-constrained device would pick
bucardo_ctl or a postgres backend as a candidate to be killed when more
than 3,000 deltas would have to be copied to a slave in one transaction. I
attached a patch to correct the situation and was wondering whether it can
be considered to be applied upstream - at least for B4; it applies to the
PUSHDELTA section. In addition to the smaller chunk size (which admittedly
might not be ideal for larger systems), it contains the following changes:
1 - Allow tables to be replicated which contain unique keys where one or
more columns are NULL
2 - performance improvement by refactoring processing of the delta record
set
With regard to (1), we found out that Bucardo would not replicate unique
keys containing NULLs because the Postgres syntax does not produce output
for the following WHERE clause:
WHERE (col1,col2,col3,col4) IN (('A','B',NULL,'D'),('A',NULL,'C',NULL))
The algorithm would split those COPY operations into two separate queries
as such:
A) <blah> WHERE (col1,col2,col4) IN (('A','B','D')) AND col3 IS NULL
B) <blah> WHERE (col1,col3) IN (('A','C') AND col2 IS NULL AND col4 IS NULL
Best,
-ar
Bucardo-4.4.8.pm.diff
Description: Binary data
_______________________________________________
Bucardo-general mailing list
[email protected]
https://mail.endcrypt.com/mailman/listinfo/bucardo-general
--- End Message ---
_______________________________________________
Bucardo-general mailing list
[email protected]
https://mail.endcrypt.com/mailman/listinfo/bucardo-general