MySQL Cluster:NoSQL+SQL、NoSQLも使える高可用性インメモリRDBMS

MySQL Clusterとは?MySQL ClusterはMySQLとは開発ツリーの異なる別製品で、共有ディスクを使わずにアクティブ−アクティブのクラスタ構成が組めるリレーショナルデータベースです。単一障害点が無い構成を組むことができ、可用性が高いため、米国海軍の航空母艦における航空機管制システ

山﨑 由章

2014年2月25日 22:30

MySQL Clusterとは?

MySQL ClusterはMySQLとは開発ツリーの異なる別製品で、共有ディスクを使わずにアクティブ−アクティブのクラスタ構成が組めるリレーショナルデータベースです。単一障害点が無い構成を組むことができ、可用性が高いため、米国海軍の航空母艦における航空機管制システムなど、ミッションクリティカルな分野でも多く利用されています。また、デフォルトではデータをメモリ上に持つインメモリデータベースであり、トランザクションを高速に処理できるため、リアルタイム性が求められるアプリケーションにも向いています(インメモリデータベースであっても、データの永続性は担保されています)。

MySQL Clusterの基礎となっている技術は、通信機器ベンダのエリクソンで携帯通信網の加入者データベース向けに開発された Ericsson Network DataBase(NDB)と呼ばれていた技術です。携帯通信網の加入者データベースは、一つ一つの処理は比較的シンプルですが、処理を大量に実行する必要がありますし、携帯電話の加入者増加に合わせて性能を拡張していく必要があります。また、通信障害が起きると収益機会も逃してしまうため、高可用性が求められます。このような環境に向けて最適化されて設計されたEricsson Network DataBase が、その後MySQLと統合され、現在のMySQL Clusterとなっています。

また、元々はSQLを使わないデータベースだったのですが、MySQLと統合されたことによりSQLも使えるようになったため、現在はNoSQL(KVS)とSQLの両方が使えるデータベースになっています。そして、NoSQLによる処理であっても、ACID準拠のトランザクションに対応しています。

図1のような企業が、MySQL Clusterを使用しています。元々、携帯通信網の加入者データベースで使われていたということもあり、Alcatel Lucent、Juniper Networksといった通信機器ベンダでも広く使われていますし、MySQLと統合されたことにより、オンラインゲームやクラウドサービスなど、Webアプリケーションのバックエンドとしての使用事例も増えています。

図1:MySQL Clusterの使用企業(クリックで拡大)

NECが通信基盤システムのデータベースにMySQL Clusterを採用しているなど、MySQL Clusterの使用事例は、こちらのページでも紹介しています。

MySQL Clusterの特徴

MySQL Clusterの主な特徴をご紹介します。

読み込み処理だけでなく、書き込み処理に対しても高い拡張性を実現

MySQL Clusterは、内部的に自動的にデータをシャーディング(分解して複数のサーバーに分散)することにより、書き込み処理に対しても高い拡張性を持っています。もちろん、どのような処理でも拡張性が出せる、という訳ではありませんが、MySQL Cluster向きのアプリケーションで使用すれば、図2のベンチマーク結果のように高い拡張性を実現可能です。

図2:UPDATE処理によるベンチマーク結果(クリックで拡大)

このベンチマークでは、更新処理(UPDATE)のスループットを、Data Nodeというサーバーの台数を2台、4台、16台、30台の4つの構成で取得していますが、ベンチマーク結果がほぼ線形であり、Data Nodeの台数を増やすことで性能がリニアに拡張していることが確認できます。

ベンチマークの詳細はこちらの資料で公開しています。また、このベンチマークはMySQL Cluster 7.2 時点でのベンチマークですが、現在の最新バージョンは7.3となっています。MySQL Cluster 7.3では、後述の通り更に性能が向上しています。

99.999%の高可用性(年間5分程度の停止時間)

99.999%の高可用性を達成するための設計がされています。単一障害点が無い構成を組めるだけでなく、カラムの追加やインデックスの追加など各種のメンテナンス処理、ノードの追加/削除などもオンラインで実行できるため、停止時間を最小限に抑えることができます。

リアルタイム処理

インメモリデータベースであるため、トランザクションを高速に実行でき、リアルタイム性が求められるアプリケーションにも適しています。

SQL+NoSQLの柔軟性

より高い性能を出したい場合にはNoSQLを使用し、柔軟にデータにアクセスしたい場合にはSQLを使用する、というNoSQLとSQLのいいとこ取りした使い方ができます。また、NoSQLのAPIをどんどん拡張していて、C++やMemcached、Java、JPA、HTTP/REST、JavaScript / Node.jsと、各種のAPIを取り揃えています。

低いTCO

共有ディスクを使用せずに、コモディティ化しているハードウェアを複数台並べて、スケールアウトにより性能を拡張できるため、トータルコストを下げることができます。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30