MySQLと掛けてIKEAと解く、その心は?
 〜 MySQL Users Conference Japan 2007レポート 〜


高橋 睦美
@IT編集部
2007/9/21

次世代エンジン「Falcon」の特徴とは

 MySQLの特徴の1つが、ストレージエンジンのプラグインが可能であり、動的に組み込むことができる点だ。トランザクション対応が必要なのか、それともクラスタ対応が求められるのかといったニーズに応じて、「MyISAM」のほか、Oracleに買収されたInnobaseが開発していた「InnoDB」、あるいはパートナー企業が独自に開発したオリジナルのエンジンなどを選択できる。

関連記事:
エンタープライズ市場に向かうMySQL 5.0[前編]
MySQLインストール完全ガイド
MySQL+Apache+PHPをインストールしよう

 現在開発が進められている新たなストレージエンジンが、トランザクション対応の「Falcon」だ。「新ストレージエンジンFalconのアーキテクチャ詳細技術解説」と題したセッションの中で、MySQLの松信嘉範氏は「Falconは、InnoDBをほぼすべての面で上回ることを目指しており、バージョン6.0で安定版が搭載される予定だ」と述べた。

 松信氏によるとFalconはまた、マルチコアや大容量メモリ、それに対して比較的低速なディスクの組み合わせという「現代的」なハードウェア環境を活用するように設計されている。またInnoDBと比べ、「クラスタ索引を利用しない」「バイナリログの取得方法として、行ベースのレプリケーションのみをサポートする」といった違いがあるという。

 Falconのメモリ領域は、大きく4つに分けられている。このうち最も重要な役割を担うのが「レコードキャッシュ」で、「できるだけ多くのレコードがメモリ上に載るようにし、高速に、少ないオーバヘッドでレコードの出し入れを行えるようにしている」(松信氏)

新たなストレージエンジン、Falconのアーキテクチャ(松信氏の資料より)

 また、MySQLはマルチスレッド型アーキテクチャを採用しているが、Falcon専属でバックグラウンドで動作するスレッドを割り当て、チェックポイントの実行やキャッシュの管理といった処理を行えるようにする。さらに、マルチコア環境での同時実行性を高めるため、mutexをラッピングして排他制御する。Read/Writeロックを導入することにより、処理の内容によっては、同時にほかのスレッドも実行できるようになるという。

 ほかにも、コミットされたデータしか書き込まないようにすることで、大量のバッチ処理におけるロールバックの高速化を図ったり、インデックス値を圧縮するなど、さまざまな特徴を持つという。

 「Falconの根本的な思想として、メモリ上にできるだけたくさんのインデックスを置き、比較的速度の遅いI/Oはできるだけ減らそうという考え方がある」(松信氏)

 細かなところでは、TEXT型とBLOB型とを別メモリ領域に管理する点も特徴だ。データ量の大きなTEXT型には専用のページキャッシュを割り当て、それ以外の列にはレコードキャッシュを用いることで、日記などのアプリケーションの読み込み効率を上げることができるという。

Sennaを使って日本語全文検索を可能に

 2日目には、MySQLで日本語全文検索を可能にする取り組みについて、住商情報システムの池田徹郎氏がプレゼンテーションを行った。

 残念ながらいまのMySQLは、部分一致検索は可能でも、そのままでは日本語での全文検索が行えない。「英語やフランス語などでは、パーサーが半角スペースを用いてキーワードを抽出することができる。しかし、日本語や韓国語、中国語などの半角区切りのない言語では行えない」(池田氏)。そこで同社では、「Senna」を用いて日本語全文検索を行えるようにパッチを開発した。

 Sennaとは、未来検索ブラジルが開発し、オープンソースで提供している全文検索エンジンだ。3月に立ち上がった「Tritonn」という名のオープンソースプロジェクトでは、このSennaをMySQLに組み込むためのパッチ(バインディングパッチ)を開発、提供している。現在はさらに、MySQL自体に手を加え、改造版ソースを開発するプロジェクトとして活動している。

関連リンク:
Tritonnプロジェクト
Senna 組み込み型全文検索エンジン

 Senna組み込みに当たって注力したのは「高速な検索を実現することと、簡単に使えるようにすること。新しいプロダクトを作るというよりも、MySQLをそのまま使えるようにしたかった」と池田氏は述べた。insertやupdate、deleteといったデータの追加、更新、削除操作は、それと意識することなく、通常のMySQLと同様に行うことができる。つまり、MySQLに対してアップデートを行えば、インデックスもまたアップデートされる仕組みだ。

 このプロジェクトではまた、本文(Body)とタイトル(Title)など、セクションごとに検索結果の重み付けができる「マルチセクション対応」、MySQLへの関数実装による「KWIC(Keyword in Context)対応」なども実現している。特にKWIC対応では「MySQLのネイティブな関数として実装している。スタイルシートを組み合わせて全文検索を使ったアプリケーションなどを作るときに有効だろう」と池田氏は述べた。

 なお住商情報システムでは、MySQL Enterprise ServerにSennaを組み込んだものをMySQL認定バイナリとして提供するとともに、MySQL Enterpriseのオプションの形で技術サポートを提供するサービスを提供している。

 コラム オープンソースには進化論が当てはまる――CEOインタビュー

 MySQL Users Conference Japan 2007に合わせて来日したMySQLのCEO、マーテン・ミコス氏に、同社およびMySQLをめぐる状況を尋ねた。

MySQLのCEOを務めるマーテン・ミコス氏

――MySQLが人気を博している理由は何でしょう?

ミコス氏 大きく2つあると思います。1つは、Webという新しいアーキテクチャに合致していること。もう1つは、高いパフォーマンスと信頼性、使いやすさ、そして導入しやすさに焦点を絞っていることです。競合他社の製品は、より多くの機能追加を目指していますが、その結果、より複雑な製品になってしまっています。

――大型化した恐竜が環境の変化に適応できなかった一方で、小型の哺乳(ほにゅう)類が生き延び、繁栄した進化の歴史に似ていませんか?

ミコス氏 オープンソースには、進化論が当てはまる部分が多いといえるでしょう。クローズドなソフトウェアの場合は、どこかの企業の誰か1人が開発の方向を決めます。これに対しオープンソースソフトウェアでは誰でも開発することができます。その中で突然変異が起こり、優れたものが生き残り、駄目なものは自然淘汰(とうた)されていくわけです。

――しかし、オープンソースソフトウェアを核としてビジネスを成り立たせるのは困難ではないでしょうか?

ミコス氏 自由と利益のバランスを取ることは簡単なことではありませんが、そこにこそMySQLの秘訣があるといえるでしょう。われわれのビジネスには2つの原則があります。1つは、われわれはあくまで営利企業であるということです。もう1つは、自ら実験し、実際にやってみる中で学ぶというビジネスを確立していることです。まずはトライしてみて、うまくいけば出す、駄目なら修正を加えるというわけです。その意味で、組み込み向けビジネスで成功を収め、その売り上げを使って良いスタートを切ることができたのは幸いでした。MySQLは、コアプロダクトはフリーで提供し、その周囲にさまざまな優れたアイデアや付加価値を加えてビジネスが成り立つことを示しました。

――その付加価値サービスについて教えてください。

ミコス氏 サブスクリプションベースの「MySQL Enterprise」を提供しています。10〜12の異なるコンポーネントから構成されており、テクニカルサポートや脆弱(ぜいじゃく)性を修正するソフトウェアリリース、データベースの運用管理を支援するソフトウェア「MySQL Enterprise Monitor」などがあり、プラチナ、ゴールド、シルバー、そしてベーシックという4つのレベルのサービスが提供されています。

――オープンソースコミュニティに対するMySQLの貢献にはどんなものがあるでしょう?

ミコス氏 まず最大の貢献は、GPLライセンスでMySQLを提供していることです。毎日5万ものダウンロードがありますが、仮にこの価格が10ドルだったとしてもかなりの額になります。ほかにも、NPOのサポートやソフトウェア特許に関するディベートなど、さまざまな形でコミュニティに利益をもたらしています。

――GPLv3は採用される予定ですか? このライセンスに批判的な見方をする開発者もいるようですが。

ミコス氏 GPLv3はまだ採用していません。このライセンスについてはいろいろ議論があるという質問ですが、GPL3作成の過程に問題があるとは思いません。われわれは単に、顧客が望んでいるからGPLv2を採用しているだけです。同じように、顧客がそれを望めばGPL3に移行する可能性もあります。ただ、GPLv2は、これまで最も成功したソフトウェアライセンスです。こうした成功の後に続くのは難しいことです。そもそもこの手の共通ライセンスというのは、ソフトウェアの世界では当たり前のようにとらえられていますが、ほかの産業にはなかなか見られないものですよね。

――企業の中にはいまだに、オープンソースソフトウェアを基幹システムで利用することに対する不安もあります。

ミコス氏 われわれは初めから、オープンソースに対する理解があり、それを受け入れ、それ故に成功している企業をビジネスおよびマーケティングのターゲットとしています。オープンソースソフトウェアを使うのが不安だという企業に無理強いするつもりはありません。

――MySQLの今後のロードマップについて教えてください。

ミコス氏 現在のバージョンは5.0で、5.1がベータとして提供されています。6.0については先日、アルファ版がリリースされました。5.1における重要な機能としてパーティショニングがあり、6.0では新しいトランザクションエンジンとしてFalconがサポートされます。

――今後、MySQLは方向を変え、多機能化を追求するのですか?

ミコス氏 確かに5.0は多機能化を図ったバージョンですが、5.1ではパーティショニングなどの機能を加え、データベースがより拡張性を持ち、より高速化するようにしています。また、マルチコアチップセットをサポートし、信頼性の向上や迅速なバックアップなども実現します。つまり、強化ポイントのほとんどは性能や信頼性の向上を目指しています。

――Oracleなどのベンダと正面切ってぶつかることになりますか?

ミコス氏 GoogleやYahoo!、楽天といったWebの分野ではMySQLが使われており、こうした分野でけんかを仕掛けてきているのはむしろ向こうの方でしょう。MicrosoftやOracleといった企業は、大きくて複雑で機能豊富な、でもある意味難しい市場をターゲットにしています。われわれは、家具の世界でいえばIKEAのようになりたいと考えています。応接間にはアンティークを置きたいかもしれないけれど、ほかの部屋にはモダンでシンプルな家具を置きたいというニーズがありますよね。われわれは、古色蒼然(そうぜん)とした古いデザイン、古いアーキテクチャの世界には興味を持っていません。こうした市場は今後、縮小することこそあれ、拡大することはないとみています。


2/2

Index
MySQLと掛けてIKEAと解く、その心は?
 〜 MySQL Users Conference Japan 2007レポート 〜
  Page 1
アジア初のカンファレンスを開催
OracleやSQL Serverは頭痛の種?
高可用性を実現する複数のアプローチ
  Page 2
次世代エンジン「Falcon」の特徴とは
Sennaを使って日本語全文検索を可能に
オープンソースには進化論が当てはまる――CEOインタビュー

Linux Square全記事インデックス


 Linux Squareフォーラム データベース関連記事
連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説
連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する
連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座
連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説
特集:エンタープライズ市場に向かうMySQL 5.0[前編]
MySQL 5.0の新機能をアルファ版でチェック
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間