Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-38907

Optimistic Relay Log Crash Recovery

    XMLWordPrintable

Details

    • New Feature
    • Status: In Progress (View Workflow)
    • Critical
    • Resolution: Unresolved
    • 13.0
    • Replication
    • None

    Description

      In the feature, we should improve this routine in order to avoid throwing
      away logs that are safely stored in the disk. Note also that this recovery
      routine relies on the correctness of the relay-log.info and only tolerates
      coordinate problems in master.info.
      ⸺ Code Documentation of `init_recovery()` of `slave.cc`

      During startup (relay log initialization), a recovery process can keep the safe portion of the log intact and only truncate the trailing corruption.
      This may be a partial event, an incomplete event group, or (failing all those) the last file written to.

      This light procedure can even be activated automatically, superceding (if not deprecating) @@relay_log_recovery, which invalidates the entire relay log.

      Truncating to the last whole event, leaving the group incomplete, will require leveraging the IO Thread's "ability" to resume mid-group.
      But truncating to the last complete group has advantages:

      • MDEV-38906 wants to get rid of this error-prone ability.
      • Binlog Recovery (TC_LOG_BINLOG::recover()) already promises this result, just with XA rollback additionally.

      Attachments

        Issue Links

          Activity

            People

              ParadoxV5 Jimmy Hú
              ParadoxV5 Jimmy Hú
              Jimmy Hú Jimmy Hú
              Kristian Nielsen Kristian Nielsen
              Deepthi Eranti Sreenivas Deepthi Eranti Sreenivas
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.