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

Set compression algorithm for replication, in case of intermediate primary. #264

Open
4 tasks
masa213f opened this issue Jun 18, 2021 · 0 comments
Open
4 tasks
Labels
enhancement New feature or request

Comments

@masa213f
Copy link
Contributor

masa213f commented Jun 18, 2021

What

In wide-area inter-cluster replication, compression is effective because the communication bandwidth is narrow.

So in the case of intermediate primary, set compression algorithm to the CHANGE MASTER TO statement.
https://dev.mysql.com/doc/refman/8.0/en/change-master-to.html

How

Check the following issues.
If they looks okay, set the compression algorithm.

Related issues

There are some issues with the compression algorithm.

  • MySQL Bugs: #103595: using zstd and zlib compression algorithm,master dump thread always be killed https://bugs.mysql.com/bug.php?id=103595

    • Semisync + compressionでプチプチ切れるケース
  • MySQL Bugs: #102561: mysqld crashes when using replication with compression https://bugs.mysql.com/bug.php?id=102561

    • アクセスできません。8.0.23でレポートされています

    Server crashes with the following backtrace when attempting to replicate
    from a primary with compression enabled during connection retries. The
    server_extension structure for tracking compression state is stored in
    the Master_info, but it is only initialized once when the I/O thread is
    started. On disconnects/retries, the mysql structure is
    freed/re-initialized, but the server_extension structure is never set
    again.

  • MySQL Bugs: #99372: MySQL8.0.19 crashes when slave tries to reconnect to master after master restart https://bugs.mysql.com/99372

    • アクセスできません、8.0.19ですが #102561 と同件っぽく見えますが、 "Fixed in 8.0.20" とされているのでリグレッションなのか微妙に違うのか…

    Ran into an interesting behavior where the replica crashes after it
    tries to re-connect to a master, after a master gets restarted (dump
    thread being killed on master). Because we have master/master setup,
    this ends up crashing the whole cluster


    How to repeat:

    1. Have a master and a replica, lets say "MasterA" and "ReplicaB"
    2. Stop MySQL in "MasterA"

      systemctl stop mysql.service

    3 On the "ReplicaB" in the log message observe that that MasterA is
    down, and you can see that it tries to connect a couple of times, but
    cannot because MasterA is down
    3. Start MasterA, and observer the crash when ReplicaB (slave threads
    tries to reconnect)
    You can see in the log file below, which is the continuation of the
    log file above

  • MySQL Bugs: #93957: slave_compressed_protocol doesn't work with semi-sync replication in MySQL-5.7 https://bugs.mysql.com/bug.php?id=93957

    • 5.7.24ですが大絶賛Verifiedで放置中です
      • MySQL Bugs: #86230: slave_compressed_protocol doesn't work with semi-sync replication in MySQL-5.7 https://bugs.mysql.com/bug.php?id=86230
      • これを5.7.21で直したと言っているのに再発のようです

Checklist

  • Finish implementation of the issue
  • Test all functions
  • Have enough logs to trace activities
  • Notify developers of necessary actions
@masa213f masa213f added the enhancement New feature or request label Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant