Jonas Oreland <jonaso@google.com> writes:
> A slightly off topic question that struck me last night: won't all parallel
> transactions conflict when updating the slave_gtid_pos table ?
They would, if the GTID was not carefully designed in anticipation of this
issue.
So the GTID position is updated in slave_gtid_pos with an INSERT, not an
UPDATE. This way, multiple updates can be done concurrently. Each row in the
gtid_slave_pos table contains an incrementing counter, and the highest value
of the counter denotes the "current" row at any one time.
I wrote a more detailed explanation of this here:
http://kristiannielsen.livejournal.com/17008.html
- Kristian.