Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix resuming binlog streaming #156 #160

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Mar 22, 2020

  1. Fix resuming binlog streaming Shopify#156

    A mysql replication event for changing data is always started by
    sending a TableMapEvent (describing the table to be changed),
    followed by one or more RowsEvent (containing the data to be
    changed). If multiple consecutive RowsEvent events are sent for the
    same table, the TableMapEvent is typically skipped (after sending it
    once), meaning that resuming from such a binlog is not possible.
    
    Resuming at a binlog position between the TableMapEvent and a
    RowsEvent is not possible, as the binlog streamer would miss the
    table definition for following DML statements.
    
    This commit tracks the position of the most recently processed
    TableMapEvent and uses this for resuming (skipping any actual events
    between the last write and resume position that were already
    processed).
    
    Change-Id: I2bef401ba4f1c0d5f50f177f48c2e866bb411f5d
    kolbitsch-lastline committed Mar 22, 2020
    Configuration menu
    Copy the full SHA
    f1496f4 View commit details
    Browse the repository at this point in the history