【特集】
MySQLの新ストレージエンジン Falcon徹底リサーチ
1 Falconとは
2007/03/03
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が持っていない特徴としては、以下が挙げられる。
- Falconではクラスタインデックスを採用していない
- Falconでは分離レベルRead Uncommittedをサポートしていない
- バイナリログの記録方式「ステートメントベース(従来型)」「行ベース」のうち、Falconでは後者しかサポートしていない
1と2については本文中で解説する。3の「行ベース」記録形式は、MySQL5.1以降でサポートされる機能で、バイナリログへの記録形式が、従来のDML/DDL文そのものではなく、物理的な値になるというものだ。InnoDBでは従来型も行ベースも両方サポートするが、Falconでは従来型をサポートしない。バイナリログの記録方式の違いは、レプリケーションに限らず、ディスク障害時のロールフォワードリカバリにも影響がある。従来型では正しく記録されなかったUUID()などは、行ベースにすることで利用できるというメリットがある。一方で、行ベースは従来型に比べて全体的にサイズが増えるという欠点もある。
現段階ではどれもサポート計画はないが、ニーズに合わせて将来的にサポートされる可能性もあることを補足しておく。
上記以外にも、InnoDBが持っていて「現時点の」Falconが持っていない重要な機能がいくつかある(SELECT FOR UPDATE、外部キー制約、オンラインバックアップ、2相コミットなど)が、これらはベータ版までにサポートされる予定である。
ヘッドライン
- ルネサス、RXファミリ第3弾としてモータ制御向け「RX62T」を製品化[07:00 2/10]エレクトロニクス
- Rambus、次世代携帯機器向けメモリ「モバイルXDR」を発表[21:16 2/9]エレクトロニクス
- Intel、基幹業務システム向け次世代プロセッサ「Itanium 9300」を発表[20:47 2/9]エレクトロニクス
- MicronとNanya、42nmプロセスを採用した2GビットDDR3を開発[20:07 2/9]エレクトロニクス
- ISSCC 2010 - 日立、1Gbpsあたり消費電力1mW以下のトランシーバ回路を開発[19:52 2/9]エレクトロニクス
- CSSを最適化する3つのツール[17:17 2/9]JavaScript / CSS / HTML
- TIOBEプログラミング言語人気 - Scratch/Erlang/Scala/JavaFX[17:17 2/9]プログラミング
- Microsoft、Red Hat Linuxサポートをひっそり追加[17:15 2/9]システム管理
- IBM、8コア/32MB eDRAM搭載の高速CPU「POWER7」を発表 - サーバも販売開始[17:02 2/9]サーバとストレージ
- 【レポート】UTM最新動向 - クラウドに耐えうる処理性能と管理性の強化が進む[14:42 2/9]セキュリティ






