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

Interrupt Ghostferry via signals and resume from SerializedState #67

Merged
merged 7 commits into from
Nov 20, 2018

Commits on Sep 25, 2018

  1. Suppressed logs from siddontang/go-mysql

    No need for the logs on that level.
    shuhaowu committed Sep 25, 2018
    Configuration menu
    Copy the full SHA
    3943a4f View commit details
    Browse the repository at this point in the history
  2. Handle SIGTERM/SIGINT and dump state to stdout

    This allows Ghostferry to be interrupted.
    shuhaowu committed Sep 25, 2018
    Configuration menu
    Copy the full SHA
    4252d9e View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2018

  1. First implementing the capability to resume

    The library gained the ability to resume the BinlogStreamer and the
    DataIterator from arbitrary states. We're still missing the
    reconciliation process to make the interrupt/resume behaviour correct
    with respect to data safety. We're also missing the ability to interrupt
    from within the IterativeVerifier.
    
    Additionally, this patch exposes the need to refactor how we initialize
    DataIterator/IterativeVerifiers, and the other "public" components that
    are below the level of Ferry. It is currently difficult to initialize
    these structs without Ferry and causes things like the hacks within
    RunOnlyDataCopyForTables (previously named RunStandaloneDataCopy). We
    can get rid of this in a future PR.
    shuhaowu committed Oct 2, 2018
    Configuration menu
    Copy the full SHA
    b2b38cb View commit details
    Browse the repository at this point in the history
  2. Refactored Ferry to create components

    Made BinlogStreamer independent of Ferry.Config
    
    Previously BinlogStreamer was dependant on Ferry.Config. It even went so
    far to change Ferry.Config for the automatic MyServerId generation. This
    will become problematic as we create new BinlogStreamer instances to
    monitor the target database to detect schema changes.
    
    We also exposed methods to create and initialize DataIterator,
    BinlogStreamer, and all the major components from Ferry, so another
    object that operates at the same level as the Ferry can be created (for
    example: the IterativeVerifier, the DeltaCopier, the Reconciler).
    
    The StateTracker was also made optional from the previous commit, as
    this does make things kind of easier to work with.
    shuhaowu committed Oct 2, 2018
    Configuration menu
    Copy the full SHA
    8a77101 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2018

  1. Minor fixes

    shuhaowu committed Oct 15, 2018
    Configuration menu
    Copy the full SHA
    4398c6f View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2018

  1. Remove AllowResumeWithMismatchedGhostferryVersion

    If you want to resume with mismatched version, just manually change the
    JSON.
    shuhaowu committed Oct 30, 2018
    Configuration menu
    Copy the full SHA
    03d9484 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2018

  1. Fixes from feedback

    shuhaowu committed Nov 20, 2018
    Configuration menu
    Copy the full SHA
    c501639 View commit details
    Browse the repository at this point in the history