I guess my concern with this is rather than ignoring  errors, shouldn't  they 
be  dealt with in some way.

Aka
update_on_duplicate_key=yes/no
verus just ignoring it.


Granted dup keys  should exist if the right offsets are user in the tables 
but....



David Murphy

From: drizzle-discuss-bounces+david.murphy=rackspace....@lists.launchpad.net 
[mailto:drizzle-discuss-bounces+david.murphy=rackspace....@lists.launchpad.net] 
On Behalf Of Planet Drizzle
Sent: Saturday, March 19, 2011 5:00 PM
To: [email protected]
Subject: [Drizzle-discuss] David Shrewsbury: Multi-Master Support in Drizzle 
Replication

David Shrewsbury: Multi-Master Support in Drizzle 
Replication<http://dshrewsbury.blogspot.com/2011/03/multi-master-support-in-drizzle.html>
So Brian<http://krow.livejournal.com/> asked me the other day what it would 
take to support multiple masters in our new Drizzle slave plugin. Not master to 
master replication, but multiple masters sending replication events to a single 
slave that simply ignores any conflicts and just chugs along. I told him I 
didn't know, but considering how simple the code is, it probably wouldn't take 
much.

To get a better understanding of what exactly would be involved in supporting 
multiple masters, I decided to just start hacking it up. I did this mainly to 
get a sense of what would need to be changed, since my original design didn't 
allow for this at all. (Shortsightedness on my part I suppose.)

So I have a beta version of my results available in this Launchpad branch:
lp:~dshrews/drizzle/beta-multi-master
>From my simple tests, it seems to work. I'm not real happy with the code (like 
>I! said, this was a hack), but functionality is there. I'm not promising this 
>will go into Drizzle trunk just yet. I would like to make some improvements on 
>it, and I'd really like to get some feedback from people on it.

To use it, you'll first need to create a modified slave configuration file. 
Here is a sample one:

ignore-errors

[master1]
master-host = foo.my.domain
master-port = 3306
master-user = user1
master-pass = password

[master2]
master-host = bar.my.domain
master-port = 3306
master-user = user2
master-pass = password
Currently, a total of 10 masters are supported. This was an arbitrary number. 
It was simplest to just predetermine a set number of masters due to some 
complications with config file parsing which I wasn't prepared to solve (this 
is one of the things I want to see fixed). One IO thread per master will be 
started, though we still use a si! ngle applier thread for the time being.

You'll notice in th e sample config a new option, ignore-errors. If this option 
is present, the slave ignores any errors from replication events received from 
the masters that it executes locally. I highly recommend you have this option 
enabled. Also note the addition of the [master1] and [master2] sections that 
define options for each master. You can go all the way to a [master10] section.

Nothing changes with how you start your slave or masters (see my post on 
setting up a simple replication 
example<http://dshrewsbury.blogspot.com/2011/03/simple-drizzle-replication-example.html>).

Give it a try and let me know how it works for you. Again, this is bleeding 
edge stuff (does any other database support this?  :) ), so be prepared for 
bugs.


URL: 
http://dshrewsbury.blogspot.com/2011/03/multi-master-support-in-drizzle.html


Confidentiality Notice: This e-mail message (including any attached or
embedded documents) is intended for the exclusive and confidential use of the
individual or entity to which this message is addressed, and unless otherwise
expressly indicated, is confidential and privileged information of Rackspace.
Any dissemination, distribution or copying of the enclosed material is 
prohibited.
If you receive this transmission in error, please notify us immediately by 
e-mail
at [email protected], and delete the original message.
Your cooperation is appreciated.

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to