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

Reply via email to