Wikipedia英語版のバックエンド、MySQL 5.1からMariaDB 5.5へ移行完了との報告

2013年4月24日

これまでMySQL 5.1のFacebookによるフォークを利用していたWikipediaが、MariaDBへのマイグレーションを進めています。4月22日、英語版とドイツ語版のWikipediaのバックエンドデータベースが、MariaDB 5.5へのマイグレーションを完了したと報告されました

Wikipedia Adopts MariaDB — Wikimedia blog

なぜMySQL 5.5ではなくMariaDB 5.5を選択したのか。Wikimedia Foundationのサイトアーキテクト Asher Feldman氏は明確な形での説明は避けつつ、次のように書いています。

That said, MariaDB’s optimizer enhancements, the feature set of Percona’s XtraDB (many overlap with the Facebook patch, but I particularly like add-ons such as the ability to save the buffer pool LRU list, avoiding costly warmups on new servers), and of Oracle’s MySQL 5.5 provide compelling reasons to consider upgrading.

MariaDBのオプティマイザー拡張、Percona XtraDBの機能群(多くはFacebookのパッチと重複するが、私は新規サーバで手間のかかるウォームアップを回避できるバッファプールLRUの保存機能のようなアドオンがとりわけ気に入っている)など、そしてオラクルのMySQL 5.5が、アップグレードを検討するべき強力な理由を与えてくれた。

Equally important, as supporters of the free culture movement, the Wikimedia Foundation strongly prefers free software projects;

同様に重要なのが、フリーカルチャームーブメントを支援することだ。Wikimedia財団はフリーソフトウェアを強く推奨している。

前半は機能や性能の面で、後半ではフリーカルチャーをサポートするためにMariaDBを選んだように読めます。

MySQLからMariaDBへと移っていくのか

MariaDBはMySQLからフォークしたオープンソースのデータベース。MySQLと基本的にバイナリ互換で、MySQLをそのままリプレースして使えるようになっています。

MySQLはサン・マイクロシステムズがオラクルによって買収されたときにオラクルのものとなりました。買収後、オラクルがMySQLのプロジェクトを閉鎖的にしていると批判されるようになり、例えばLinuxのおもなディストリビューションの1つであるFedora Projectは、これまで標準のデータベースとして採用していたMySQLの代わりに、Fedora 19からはMariaDBを採用するとして作業を進めています。Fedora以外にopenSUSEもMariaDBを採用するとしています。

今回、世界でも有数の規模のWikipediaがMariaDBへと切り替えたことは、MariaDBにとって実績の大きな裏付けとなることでしょう。

MariaDBへのマイグレーション方法

WikipediaがMariaDB 5.5へのマイグレーションを具体的にどう行ったかについても説明されており、これからアップグレードする人にとって参考になりそうです。以下、説明された文章の内容を簡単にまとめて箇条書きにしておきます。

  • 実運用中のマイグレーションは簡単ではない。
  • MySQL 4.0から5.1へのマイグレーションは、スキーマの変更などを伴った
  • 5.5では以前のバージョンとの非互換部分が数多くある。
  • クエリオプティマイザーも変わり、SQLの実行パスが変わるためクエリの性能が良くなることも悪くなることもあった
  • レプリケーションの一貫性も壊してしまうことがあった
  • そのためきちんとしたテストが必要だった
  • Percona Toolkitのpt-upgradeを使い、さまざまなエラーに対してログから実行を再現した
  • 実運用サーバのスタンバイサーバとしてデータを読み取り、おおまかなロードテストとベンチマークを実施するスクリプトを開発
  • その過程でいくつかのMariaDBのバグも発見し、対応してもらった

あわせて読みたい

MySQL RDB データベース MariaDB




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本


<!- script for simple analytics events -->