• stewart@mysql.com's avatar
    WL#2868 Fix backup trigger handling · d88e5766
    stewart@mysql.com authored
    BACKUP previous set up triggers using DICT.
    This lead to all kind of trouble.
    An smaller alternative to using SUMA for backup
      is to just make BACKUP handle triggers to TUP directly.
    
    This way all triggers will be totally local,
      and error handling is much simpler.
    
    --- old impl.
    
    Start: Master recives GSN_DEFINE_BACKUP_CONF from all participants
    Master sends CREATE_TRIG_REQ for all tables to local DICT (dict master)
    Master sends START_BACKUP_REQ to all paricipants with trigger ids from DICT
    Master sends ALTER_TRIG_REQ (online) to local DICT
    Master waits for GCP
    Master starts distributed scan
    When scan has finished
    Master waits for GCP
    Master sends DROP_TRIGGER to local DICT
    Master sends STOP_BACKUP_REQ to all participants
    
    --- new impl.
    
    Start: Master recives GSN_DEFINE_BACKUP_CONF from all participants
    Master sends START_BACKUP_REQ to all paricipants
      Participand sends CREATE_TRIG_REQ for all tables to local TUP
    Master waits for GCP
    Master starts distributed scan
    When scan has finished
    Master waits for GCP
    Master sends STOP_BACKUP_REQ to all participants
      Participant sends DROP_TRIGGER to local TUP
    
    Changes:
    All trigger handling is _local_
     This implies, that abort (e.g due to node failure) can be _local_
    
    
    fix testBackup test so that it will run successfully with the (now correct)
    backup trigger code.
    d88e5766
Backup.cpp 118 KB