[Bucardo-general] Complex Bucardo install reaching limits

Greg Sabino Mullane greg at endpoint.com
Sat Jan 3 13:07:49 UTC 2015


> To solve this "connected/disconnected" problem we have set up the laptops
> to each run their own bucardo server with their own client-specific syncs.
...
> We're currently using 4.99.11 and on my task list is to update to current
> head.

This would be my number one recommendation. There have been a lot of bug fixes 
and makedelta optimizations since 4.99.11. Version 5.3.0 was recently released - 
I would try that rather than head at the moment.

> I believe that the proper solution to our issues is to switch around so
> that we're running a single central bucardo process with a single set of
> syncs. However for this to be successful the "in the works" database-down
> detection would need to be complete, since we don't want a sync to stall or
> fail on down database (because most databases will be down most of the
> time). Instead, just to skip databases that are down, then catch them up
> when they come online. I know that's not available yet.

This should be working. I would test it first, but in theory if each remote 
DB has its own sync, then you should be able to set it up as described. If 
it doesn't work, file a bug report and we will get it going. However, it 
won't really do anything to solve the contention issue.

> In the meantime, are there any suggestions on how to overcome our current
> scaling limitations? Would it be useful to change over to a central
> burcardo server but still have client-specific syncs that continue to use
> makedelta? I don't really see how that would solve the current contention
> issue but maybe it would. Any other thoughts?

You could try switching the isolation_level, but other than that, it would 
really depend on the details of how the contention is happening. We could 
investigate some solutions such as lightweight locks or random sleeps, but 
it really depends on how the contention arises, e.g. are the clients 
conflicting with each other's updates, or is it mostly updates to the 
main db that are causing issues. Or perhaps it is the makedelta system causing 
contention. How often the syncs run and how long they take are factors as well. 
On that note, anything making the syncs faster will help as well - so splitting 
into multiple syncs would help, if your schema can handle that.

If you can describe things well enough, it would be great to generate a test 
file. You might check out a recently added one, t/50-star.t, which creates 
a setup very similar to yours - a central DB, and multiple syncs (I think 
the test has around 20). I get the occassional seriliazation failure when 
running the test, but it is fairly rare.

-- 
Greg Sabino Mullane greg at endpoint.com
End Point Corporation
PGP Key: 0x14964AC8
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: Digital signature
URL: <https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20150103/b14c1671/attachment.sig>


More information about the Bucardo-general mailing list