Facebookは、2つの大陸にある複数のデータセンターの数千台のサーバにまたがるグローバルな*** MySQLデータベースクラスタを運用しています。不可解なことに、Facebook はこの巨大な MySQL データベースクラスタを管理するために、非常に小規模なチームを雇用しています。
最近、FacebookのShlomo PriymakがFacebookブログの投稿でその秘密を公開しました。Facebookの秘密は、Facebookが独自に開発したMySQL Pool Scannerです。のデータベースクラスタの運用を高度に自動化することができます。
Priymak氏によると、MPSは非常に複雑なため、コードのほとんどがPythonで記述されています。これにより、クラスタの可用性が確保されるだけでなく、管理者は1つのコマンドだけで、Facebookデータセンターのデータセット全体をコピーするなど、多くの複雑なタスクを簡単に実行できるようになります。ここでは、単一のコマンドで実行できる一般的なデータベースクラスタのメンテナンスタスクをいくつか紹介します:
- メンテナンスのためにデータベースラックを空にして、本番環境から移動します。
- コンカレンシーのある瞬間に何千台ものマシンを再イメージします。
- 新しいプロジェクトやテストタスクに、利用可能なリソースをいくつでも割り当てることができます。たとえば、一度に 200 台のサーバーをテスト用に割り当てます。
- フェイスブックのルレオ・データセンターなど、新しいデータセンター全体のコピーを作成します。