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