BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Metaが信頼性向上と運用の簡素化を目的に「MySQL Raft」へ移行

Metaが信頼性向上と運用の簡素化を目的に「MySQL Raft」へ移行

ブックマーク

Metaは現在の準同期データベースとしてのMySQLを置き換えるために、MySQL Raftをデータセンターで展開している。新しいコンセンサスエンジンは運用を助け、MySQLサーバーがプロモーションやメンバーシップに責任を持つことを可能にしている。

MetaのMySQLデータストアは、世界最大級の規模を誇り、数百万個のシャードで地理的に分散して複製された大規模なデプロイメントだ。ソーシャルグラフとメッセージング、広告、フィードなどのサービスを提供するクラスタは、ペタバイトのデータを保持し、分散した地域のデータセンターに設置された数千台のサーバーで稼働している。Meta社のソフトウェアおよびプロダクションエンジニアであるAnirban Rahut氏Abhinav Sharma氏、Yichen Shen氏、Ahsanul Haque氏は次のように説明する。

ここ数年、私たちはMySQLと統合されたRaftコンセンサスエンジンであるMySQL Raftを実装し、複製されたステートマシンを構築してきた。私たちは、デプロイの大部分をMySQL Raftに移行し、現在のMySQL準同期データベースを完全にMySQL Raftに置き換える予定だ。

チームによると、新しいMySQLの導入により、書き込み性能を損なうことなく、高い信頼性、証明可能な安全性、フェイルオーバー時間の大幅な改善、運用の簡素化が実現されるとのことだ。

これまでのMetaのレプリケーション戦略では、MySQLの準同期(semisync)レプリケーションプロトコルを使用していた。プライマリーでは、プライマリーリージョン内の2つのログオンリーレプリカ(logtailer)への準同期レプリケーションでミリ秒以下のレイテンシーを実現し、他のリージョンへの配信には通常のMySQLプライマリーからレプリカへの非同期レプリケーションを使用することになった。チームは、直面していた課題をこう説明する。

複雑なプロモーションとフェイルオーバーの操作中に安全性を保証し、データ損失を避けるために、いくつかの自動化デーモンとスクリプトは、ロック、オーケストレーションステップ、フェンシングメカニズム、サービス発見システムであるSMCを使用します。分散型のセットアップであり、これを原子的に達成するのは困難だった。自動化は時間の経過とともに複雑化し、パッチが必要なコーナーケースも増え、メンテナンスが難しくなりました。

Source: https://engineering.fb.com/2023/05/16/data-infrastructure/mysql-raft-meta/

その代わりにチームは全く新しいアプローチでMySQLを強化し、本当の意味での分散システムに移行することを決定した。 MetaはRaftに切り替え、コントロールプレーンとデータプレーンのオペレーションを同じレプリケートされたログの一部としたのである。FacebookでMTSを務めMongoの著名なエンジニアであるMark Callaghan氏はコメントしている。

MySQLとRaftは、お味噌汁と御飯、チャーシューとメンマと卵麺のように相性が良い。

DatabricksのシニアディレクターであるShrikanth Shankar氏は、変化の複雑さを強調する。

「飛んでいる飛行機のエンジンを交換しろ!」なんていうジョークがありますよね?このプロジェクトはまさにそれでした。見事に成功させたチームに拍手を送ります!

一方でPerconaの創設者でオープンソースの提唱者であるPeter Zaitsevはこのように問いかけている

なぜFacebookはMySQL Group Replicationを使ったり改善したりするのではなく、MySQL Raftを構築しているのでしょうか?

Raft for MySQLは、Apache Kuduをベースに、MetaがMySQLのニーズに合わせて修正し、オープンソースプロジェクトであるkuduraftとしてフォークを公開している。kuduraftに追加された新機能は、2つの異なる交差するクォーラムをサポートするオプションであるFlexiRaftと、プロキシ中間ノードを使用しネットワーク帯域幅を削減する機能であるProxyingだ。さらに、圧縮とログ抽象化の改善により、配布前のバイナリログペイロードの圧縮や、異なる物理ログファイルの実装が可能になった。

作者について

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT