GTIDs Explained
Upcoming SlideShare
Loading in...5
×
 

GTIDs Explained

on

  • 408 views

I presented these slides at the London MySQL Meetup on Thursday 6 March 2014

I presented these slides at the London MySQL Meetup on Thursday 6 March 2014

Statistics

Views

Total Views
408
Views on SlideShare
407
Embed Views
1

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 1

http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

GTIDs Explained GTIDs Explained Presentation Transcript

  • Ivan  Zoratti   GTIDs  Explained MySQL 5.6, MariaDB 10, Galera 3 V1403.01
  • MySQL  5.6  Replication 2 M1 S1 S2 S3
  • GTID  in  MySQL  5.6 3 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 Transaction  ID   Sequence  number  determined  by  the  order  in  which   the  transaction  was  committed  on  this  server   ! Transaction  ID  =  =  Sequence Source  ID
 Identifies  the  originating  server
 ! Source  ID  =  =  Server  UUID
  • GTID  in  MySQL  5.6 •Used  to  identify  a  transaction  in  a  MySQL  5.6  Cluster   •Sets  are  also  allowed  to  identify  an  interval  of  transactions   •Preserved  between  masters  and  slaves,  i.e.  they  identify  the  source  (origin)  of  a  transaction   •Transactions  with  the  same  GTID  cannot  be  applied  more  than  once   •Benefits   •Simplified  failover  (with  CHANGE  MASTER  TO  and  MASTER_AUTO_POSITION=1)   •Guarantees  slave  consistency  by  checking  Executed_Gtid_Set 4
  • Galera  Cluster • Read  &  Write  access  to  any  node   • Client  can  connect  to  any  node   • There  can  be  several  nodes   • Automatic  node  provisioning   • Replication  is  synchronous 5
  • GTID  in  Galera  3 •Used  to  identify  a  state  change   •i.e.  to  identify  write  operations  to  the  database   •Used  to  identify  the  state  itself   •i.e.  the  last  state  change 6
  • GTID  in  Galera  3 7 ! 45eec521-2f34-11e0-0800-2a36050b826b:94530586304 An  ordinal  sequence  number  (seqno,  64-­‐bit  signed   integer)  to  denote  the  position  of  the  change  in  the   sequence   ! Sequence  =  =  Change  in  the  Cluster State  UUID
 I  uniquely  identifies  the  state  and  the  sequence  of  changes  it   undergoes   ! UUID  =  =  Cluster  ID
  • GTID  in  Galera  3 •A  Galera  Cluster  acts  as  a  single  node   •No  holes  in  the  sequence   •Stored  in  grastate.dat   •5ee99582-­‐bb8d-­‐11e2-­‐b8e3-­‐23de375c1d30:8204503945773  <<<  Typical  sequence   •5ee99582-­‐bb8d-­‐11e2-­‐b8e3-­‐23de375c1d30:-­‐1  <<<  The  node  has  crashed   •00000000-­‐0000-­‐0000-­‐0000-­‐000000000000:-­‐1  <<<  The  node  has  crashed  during  the   execution  of  a  non  transactional  operations  (e.g.  a  DDL  op)  or  the  op  has  been  aborted 8
  • MariaDB  10  Replication 9
  • GTID  in  MariaDB  10 10 ! #131109 14:59:59 server id 1 end_log_pos 4151 GTID XXX-YYY-ZZZ /*!100001 SET @@session.gtid_seq_no=ZZZ*//*!*/; Sequence  Number   64bit  unsigned   It  increases  monotonically  at  each  commit   It  is  applied  for  each  Event  Group,  i.e.,  for  each  BEGIN/COMMIT  or   for  groups  that  have  no  BEGIN/COMMIT
 (for  example  DDL  commands,  TRUNCATE  and  others) Server  ID   32bit  unsigned   The  server_id  value  for  the   MariaDB  instance Domain  ID   32bit  unsigned   The  domain_id  value  for  the   Replication  stream
  • GTID  in  MariaDB  10 •1  GTID  for  each  event  group   •Groups  can  be  executed  in  parallel   •Transaction  safe  (stored  in  an  InnoDB  table,
 not  in  a  file)   •MASTER_USE_GTID=gtid_slave_pos  -­‐  great  to  position/reposition  slave  nodes   •Domain  ID  is  used  to  guarantee  that  this  works  with  multi-­‐source  replication 11