Monty Taylor wrote:
Brian Aker wrote:
Hi!

What is the value of CHECKSUM TABLE? Should this have been done as an
I_S feature?

I was looking through the bug reports and it looks to give out fairly
inconsistent, and sometimes wrong, answers. Is this being used in
production?

It isn't - or shouldn't be. BUT - if it actually worked well, like
Baron's checksumming thing from maatkit - then it would be a good thing
for many people, I imagine.

My plan was to rip the current implementation out, as it is specific only to MyISAM, and replace with a storage-engine agnostic CHECKSUM command, taking the form:

CHECKSUM (ALL | TABLE table_identifier | TABLES table_list);

with the ALL representing all tables in the server.

This CHECKSUM command would be able to be manually run on a publisher server (a master in MySQL world) and whenever the command hit a subscriber (slave), the subscriber would checksum itself and, depending on an option set up in the configuration file, would either:

a) Abort replication immediately and stop subscriber feed
b) Continue replication but provide an email or warning of some kind

The Google Protobuffer message format I will propose is as follows:

message Checksum
{
  required uint32 checksum; /* crc32 value */
  repeated string table; /* contains table_list or table_identifier */
}

The Command message will be modified as follows:

message Command
{
...
  optional Checksum checksum_record; /* A CHECKSUM SQL command result */
}

NOTE: There is no need for a timestamp in the Checksum message, as it is already available in the Command message, of which Checksum is an encapsulted sub-message.

This CHECKSUM command is in addition to the existing CRC32 checksum that the command log already keeps for its segments.

Thoughts?

Jay

_______________________________________________
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