GitHubのエンジニアが語る!MySQL5.7→8.0へのサービス無停止アップグレードの内幕 #GitHub_findy

2024/3/21に開催された「GitHubのエンジニアが語る!MySQL5.7→8.0へのサービス無停止アップグレードの内幕」のイベントツイートまとめです https://findy.connpass.com/event/312092/
6
teckl @teckl

MySQL 8.0から 5.7への逆方向のレプリケーション… #GitHub_findy

2024-03-21 12:10:43
まみー @mamy1326

逆レプリと両方で動くコードベース、規模がデカくて頭が痛くなるな… #GitHub_findy

2024-03-21 12:10:51
おしょうゆ @osyoyu

GitHub の中では GitHub\.com (as opposed to Enterprise Server) のことは dotcom って呼んでるのかな #GitHub_findy

2024-03-21 12:11:08
hmatsu47(まつ) @hmatsu47

逆方向レプリケーションは非推奨だけど制約がわかってればできないことはない(そういえばスマートスタイルの記事がどこかにあったな)。 #GitHub_findy

2024-03-21 12:13:03
hmatsu47(まつ) @hmatsu47

規模とか用途の多様性を考えるとシフトレフトだけじゃなくてシフトライトも意識して移行を実施しないといけないけど、1つのDBを複数のサービスで共用してたりすると辛そう。 #GitHub_findy

2024-03-21 12:16:27
かしゅー @kashew_nuts

レプリカをMySQL8.0にアップデートした後にフェイルオーバーしたと。 #GitHub_findy #GitHub_findy

2024-03-21 12:16:28
teckl @teckl

逆だとCOLLATIONも互換性が無い utf8mb4_0900_ai_ci #GitHub_findy

2024-03-21 12:17:38
あんどぅ @integrated1453

レプリケーションする時に8.0にない照合順序があるとレプリケーションが停止してしまう問題、、、 #GitHub_findy

2024-03-21 12:17:41
かしゅー @kashew_nuts

文字セット照合順のせいでレプリケーションが止まった() utf8mb4_0900_ai_aiはMySQL5.7に存在しないからと。 #GitHub_findy pic.twitter.com/OQth1e07V6

2024-03-21 12:17:56
拡大
おしょうゆ @osyoyu

この規模で default collation が変更されるの、想像もしたくない #GitHub_findy

2024-03-21 12:18:23
まみー @mamy1326

称号順序も監視してコードを特定して対応か…サラッといってるけどすげぇなあ #GitHub_findy

2024-03-21 12:19:05
あんどぅ @integrated1453

やっぱり、ロールバックするために 逆方向レプリケーションも考える必要があると、事前にアプリケーション改修するとかの準備さえ必要になるよね #GitHub_findy

2024-03-21 12:19:47
Diwamoto @Diwamoto_

5.7→8.0すらそもそも大変なのに、8.0→5.7でここまでの面倒が発生すると嫌になるよな。。。 #GitHub_findy

2024-03-21 12:20:00
しょラー @shora_kujira16

みんなレプリケーションぶっ壊してる。壊したことがないのはお前だけ #GitHub_findy

2024-03-21 12:20:56
hmatsu47(まつ) @hmatsu47

SUPER権限の動的権限への分割は地味に効いてくる(マネージドサービス使ってると特権が制約されているから特に)。 #GitHub_findy

2024-03-21 12:21:12
まみー @mamy1326

レプリケーション遅延も 150 msec で問題になるレベルか…でも MySQL 8.0 自体の問題じゃなかったようでよかった #GitHub_findy

2024-03-21 12:22:29
kaori @usakoyama

datadogも関係してくるのか。ややこしい #github_findy

2024-03-21 12:22:40
かしゅー @kashew_nuts

MySQL5.7が20msに対し、MySQL8.0にしたら100~150msのレプリカラグが発生したと。(たぶん)Datadogのプラグインが遅延を引き起こしていた。MySQL8.0自体の問題ではなかった。 #GitHub_findy

2024-03-21 12:22:55
hmatsu47(まつ) @hmatsu47

照合順序でいうと(そろそろお役御免の)Aurora MySQL v2(MySQL 5.7互換)はサポート範囲が微妙に本家MySQL 5.7と違ってたり。 #GitHub_findy

2024-03-21 12:23:05
おしょうゆ @osyoyu

MySQL 5.7 → 8.0 にレプリカしたらレプリカラグが 20ms → 150ms に増大した(が、実はそうではなく、Datadog プラグインの実装による誤ったメトリクスだった)? #GitHub_findy

2024-03-21 12:24:05