Hi Eric, Mats
On 08/09/2008, at 5:54 PM, Eric Day wrote:
The spec looks good! One thing I might add on there is support for
multi-master subscription for a single server, rather than only being
able to pull replication queries from just one server. This is
probably
not useful for a general case, but I can think of a few applications
where this could be useful (especially in cloud environments). Any
type
of data that is either deterministic regardless of ordering or where
data does not always need to be consistent (statistical applications
or
eventual consistency schemas).
I'm guessing this isn't something that would happen for the first
basic
implementation, but it might be good to keep in mind during the queue
and connection manager reworking (I_S tables for connected slaves and
masters possibly).
If I read you correctly, this kind of thing is exactly what I'm doing
with at least one customer.
Think of a business HQ generating a catalog with products/prices,
repicating out to branches.
The branches produce their sales/order stuff locally, which is
replicated back to HQ.
Each branch has their own database name for their stuff, so there's
never a conflict.
Currently, the old method is to replicate back to many instances,
which happen to use MyISAM and external locking so all the DBs can
then be accessed from a single instance. Quite neat and safe as long
as nobody destroys the setup by messing with the locking or storage
engine config.
The other method (which does not require MyISAM) uses the multi-master
replication script on Google Code that does a simple round-robin of
all masters.
Was that what you meant?
It'd be nice to have that built-in, it's actually quite a common setup.
Cheers,
Arjen.
On Wed, Aug 20, 2008 at 05:51:43PM +0200, Mats Kindahl wrote:
Hi all!
I have added a stub for a specification of a very simple statement-
based
replication implementation on the Drizzle wiki under
http://drizzle.wikia.com/wiki/Simple_Replication
In there, we have a sample specification of the binary log messages
that
are needed to support the implementation. The intention is to have
something small and simple up and running in a relatively short
time. To
do this, we are specifying the message format in Protobuf, but to
handle
the message transport, a separate module will be used to handle
"framing" of the messages for transport to the slave.
The goals are:
* Simple replication implementation
* Separate module
* Supporting slave fail-over to other master (something that MySQL
Replication does not support well currently)
* Moderate message integrity checking using simple CRC-32 checksum
(mainly aimed to ensure that the correct size of messages are read).
* Support for adding digest/hash for more extensive integrity checks
Some open issues are:
* Timestamps are currently down to nanosecond precision, but I
question
if this is needed. It requires 8 bytes, which is almost half of the
header, so if we can reduce this for the common scenarios and maybe
have a timestamp where it is necessary, I think that would be a good
thing.
* Do we need to support encryption/compression of the individual
events?
* There is no support for LOAD DATA INFILE yet. We could use a
similar
technique as is used in MySQL Replication, but there might be
alternatives.
Other ideas are welcome!
Just my few cents,
Mats Kindahl
--
Mats Kindahl
Lead Software Developer
Replication Team
MySQL AB, www.mysql.com
begin:vcard
fn:Mats Kindahl
n:Kindahl;Mats
org:Sun Microsystems
adr;quoted-printable:;;Tegv=C3=A4gen 3;Storvreta;SE;74334;Sweden
email;internet:[EMAIL PROTECTED]
title:Lead Replication Software Developer
x-mozilla-html:FALSE
version:2.1
end:vcard
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp
--
Arjen Lentz, Founder @ Open Query
Training and Expertise for MySQL in Australia and New Zealand
http://openquery.com.au/training/ (ph. +61-7-3103 0809)
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp