← Back to team overview

drizzle-discuss team mailing list archive

VOTE PLEASE - Drizzle Replication - Group ID vs. Global Transaction ID

 

Hi all,

I'd like to get some consensus votes to solidify the terminology around something that is soon to hit Drizzle's replication system:

A way to uniquely identify a specific Transaction in a global replication environment.

There are two different sets of terms in use regarding the above functionality, and I'd like to be able to settle on one set or the other.

Indeed, if one looks at Google's implementation of the above functionality for MySQL 5.0, the terms "group id" and "global transaction ID" seem to be freely intermingled. Even the URL and title of the Google FAQ on the subject/patch have contradicting terms!:

http://code.google.com/p/google-mysql-tools/wiki/GlobalTransactionIds

Note the URL says "Global Transaction IDs" and the page title says "Global Group IDs". Very confusing to me. Anyone else?

I'd like to settle this confusion and just start referring to this functionality by a single term: "Group ID"

The reason is that the group ID is actually *not* a global identifier. The global identifier is actually the server ID *plus* the group ID, and therefore referring to the group ID as the global transaction ID is a bit of a misnomer.

I would like to change the TransactionContext message format from this:

message TransactionContext
{
  required uint32 server_id = 1; /* Unique identifier of a server */
  required uint64 transaction_id = 2;/*Globally-unique transaction ID */
  required uint64 start_timestamp = 3;
  required uint64 end_timestamp = 4;
}

to this:

message TransactionContext
{
  required uint32 server_id = 1; /* Unique identifier of a server */
  required uint64 group_id = 2;/* Unique ID of trx on this server */
  required uint64 start_timestamp = 3;
  required uint64 end_timestamp = 4;
}

Please let me know if this is OK with folks.  Thanks!

Jay




Follow ups