最終更新:2011-04-01 (金) 21:15:09 (4773d)  

groongaストレージエンジン
Top / groongaストレージエンジン

http://mroonga.github.com/

groongaストレージエンジンの特徴

groongaストレージエンジンとは

  • MySQLではver5.1からPluggable Storage Engineインタフェースが採用され、以前よりも柔軟に独自のストレージエンジンを利用できるようになりました。そこでgroongaにストレージエンジンインタフェースを実装し、MySQL経由でもgroongaを利用できるようにしました。

Tritonnの後継

  • MySQL日本語全文検索を実現するための方法として、MySQLgroongaの前身である全文検索ライブラリ?Sennaを組み込んだプロダクトをTritonnプロジェクトから開発・リリースされて来ました。groongaストレージエンジンはその後継プロダクトとなります。

MySQLのプラグインとして動作

  • TritonnではMySQLサーバのソースコードを直接修正していましたので、使用するためには利用者がソースから自分でビルドするか、あるいはTritonnプロジェクトが配布するバイナリを使う必要がありました(MySQL本家が配布する公式バイナリを利用できませんでした)。

一方、groongaストレージエンジンはPluggable Storage Engineインタフェースを利用した独立したプログラム(共有ライブラリ)であるため、MySQLの公式バイナリに手を加えずにプラグインとして動的にロードして利用することが可能となっています。これによりTritonnよりもさらに手軽に利用できるようになりました。

更新性能の向上

  • Sennaと比較するとgroongaではインデックス追加/更新時のスループットが大幅に改善されています。

検索性能の向上

  • TritonnではMyISAMストレージエンジンを利用していたため、データ更新(インデックス更新)が発生するとテーブル全体に排他ロック]]がかかり、検索処理が阻害される問題がありました。

groongaストレージファイル経由でのシステム連携

  • groongaストレージエンジンではgroongaのDB APIを使用してデータの格納を行っています。この時作成されるストレージファイルはgroonga単体でデータ管理を行う場合と同じフォーマットとなります。つまり以下のような使い方も可能となります。
  • groongaストレージエンジン(MySQL)経由で格納したデータをgroongaサーバ(単体)の高度な検索機能を利用して検索
  • groongaサーバ(単体)経由で格納したデータをgroongaストレージエンジン(MySQL)経由で参照
  • またgroongaのストレージファイルは複数プロセスや複数スレッドで共有することができますので、同じストレージファイルに対して複数パタンでの同時アクセスも可能です。

サポートしているプラットフォーム

  • 現在サポートしているプラットフォームは以下の通りです。