【特集】

MySQLの新ストレージエンジン Falcon徹底リサーチ

1 Falconとは

  • <<
  • <

1/8

2007年1月に、MySQL ABは新しいストレージエンジン※である「Falcon」のアルファ版をリリースした。Falconは、現在広く使われているストレージエンジン「InnoDB」に代わる選択肢のひとつとして期待されている。本稿は、このFalconの技術的な特徴について解説する。

※テーブルの種類のこと。MySQLでは、InnoDBやMyISAMなど、さまざまな種類のテーブルがあり、テーブル単位でどれを使うか選択できる。

Falconの概要 - InnoDBと比較する

Falconは、リレーショナルデータベース(RDBMS)界の権威であるJim Starkey氏と、彼の妻であるAnn Harrison氏を中心に開発が進められている。Jim Starkey氏はInterbaseの生みの親であり、またAnn Harrison氏とともにFirebirdのメインコミッタとしても活躍している。彼らはNetfrastructureという会社にて次世代RDBMSの開発を進めていたが、2006年2月にMySQL ABがNetfrastructureを買収したことにより、両名ともMySQL ABに加わった。

Falconの最も基本的な特徴は、トランザクションをサポートしていることである。コミット/ロールバックに限らず、行レベルロック、MVCC(Multi-Version Concurrency Control)、ロックをかけないオンラインバックアップ、クラッシュリカバリなどは、いずれもトランザクションのサポートを基盤としており、アプリケーション開発においてきわめて重要な機能と言える。MySQL5.0において、トランザクションをサポートしているストレージエンジンとしては、InnoDBとNDB(MySQL Cluster)がある。InnoDBはMyISAMなどと同様に、主にMySQLサーバ1台、もしくはマスター/スレーブ型レプリケーション構成で採用されるものである。一方、NDBはクラスタ構成を前提としたもので、インメモリ型の高速/高可用ストレージエンジンであり、数万~数十万トランザクション/秒といった桁違いのスループットが要求される環境に向いている(欧米を中心に数多くの実績がある)。

Falconは、このうちInnoDBやMyISAMと同様の領域をターゲットとしている。ユーザーから見た機能はInnoDBとほぼ一緒なので、InnoDBの代替的な存在と言える。ただFalconは、InnoDBとは内部のアーキテクチャが大きく異なるし、InnoDBでのみカバーされる特徴も一部存在する(後述)。そのため、InnoDBの上位互換(完全に置き換え可能な存在)になるわけではないので注意していただきたい。

Falconの安定版リリース時期は、MySQL 5.1の次のバージョン(5.2)を予定している。ただし、今後の開発状況やユーザーの要望によっては、5.0や5.1にバックポートされる可能性もある。

InnoDBでのみカバーされる特徴

InnoDBが持っていてFalconが持っていない特徴としては、以下が挙げられる。

  1. Falconではクラスタインデックスを採用していない
  2. Falconでは分離レベルRead Uncommittedをサポートしていない
  3. バイナリログの記録方式「ステートメントベース(従来型)」「行ベース」のうち、Falconでは後者しかサポートしていない

1と2については本文中で解説する。3の「行ベース」記録形式は、MySQL5.1以降でサポートされる機能で、バイナリログへの記録形式が、従来のDML/DDL文そのものではなく、物理的な値になるというものだ。InnoDBでは従来型も行ベースも両方サポートするが、Falconでは従来型をサポートしない。バイナリログの記録方式の違いは、レプリケーションに限らず、ディスク障害時のロールフォワードリカバリにも影響がある。従来型では正しく記録されなかったUUID()などは、行ベースにすることで利用できるというメリットがある。一方で、行ベースは従来型に比べて全体的にサイズが増えるという欠点もある。

現段階ではどれもサポート計画はないが、ニーズに合わせて将来的にサポートされる可能性もあることを補足しておく。

上記以外にも、InnoDBが持っていて「現時点の」Falconが持っていない重要な機能がいくつかある(SELECT FOR UPDATE、外部キー制約、オンラインバックアップ、2相コミットなど)が、これらはベータ版までにサポートされる予定である。

  • <<
  • <

1/8

インデックス

目次
(1) Falconとは
(2) Falconの動作確認
(3) ファイル構成
(4) データ型と領域管理
(5) トランザクション制御 - MVCCと排他制御
(6) プロセス/スレッド、メモリ構成
(7) インデックス
(8) 設定パラメータ

もっと見る



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

求人情報