Skip to content
  • pedro.gomes's avatar
    6ee43801
    Bug #20577209 ADD TRANSACTIONAL SUPPORT TO VIEW CHANGE EVENT · 6ee43801
    pedro.gomes authored
    Not being transactional, View Change events always suffered with
    problems when we wrote them to the binlog and relay log.
    
    On Relay log:
    When the View Change event was the last event in the
    log, this meant that the relay log positions wouldn't be update.
    Upon plugin restart this meant that the events would be again written
    to the binlog.
    
    On Binlog:
    When written to the binlog the events would not any support to allow
    skipping them when we connected to the same master twice for example.
    Other problems were that we are not able to track when the event was
    written to relay_log/binlog without checking log positions or thread
    states.
    MTS issues are also predictable in the near future
    
    Solution:
    When queued to the relay log, the View Change event will be surrounded
    by a transactional block.
    
    GTID
    BEGIN
    VIEW CHANGE
    COMMIT
    
    This need changes to the event writing routines as it now needs to be
    written to the binlog cache that will be flushed by the commit.
    6ee43801
    Bug #20577209 ADD TRANSACTIONAL SUPPORT TO VIEW CHANGE EVENT
    pedro.gomes authored
    Not being transactional, View Change events always suffered with
    problems when we wrote them to the binlog and relay log.
    
    On Relay log:
    When the View Change event was the last event in the
    log, this meant that the relay log positions wouldn't be update.
    Upon plugin restart this meant that the events would be again written
    to the binlog.
    
    On Binlog:
    When written to the binlog the events would not any support to allow
    skipping them when we connected to the same master twice for example.
    Other problems were that we are not able to track when the event was
    written to relay_log/binlog without checking log positions or thread
    states.
    MTS issues are also predictable in the near future
    
    Solution:
    When queued to the relay log, the View Change event will be surrounded
    by a transactional block.
    
    GTID
    BEGIN
    VIEW CHANGE
    COMMIT
    
    This need changes to the event writing routines as it now needs to be
    written to the binlog cache that will be flushed by the commit.
Loading