Download - Mroonga unsupported feature_20111129
mroongaの未サポート機能 (2011/11/29時点)
Kentoku SHIBA
kentokushiba[at]gmail[dot]com
mroongaの未サポート機能
・UTF8以外の文字コード
・COLLATION
・condition pushdown
・点以外の空間情報
・0跨ぎの緯度経度
・MySQL 5.6から登場する正確な位置比較関数
・ストレージモードでのNULL
・トランザクション
・repair table
・parallel searching (Spider)
UTF8以外の文字コード
今は実質utf8のみ利用可能。
http://redmine.groonga.org/issues/1160
utf8mb4、cp932、eucjpmsを今年中か、来年早々に
対応予定。
COLLATION
今はNFKC使ってる。
MySQLのcollation使いたいという要望あり。
http://redmine.groonga.org/issues/1150
今年中か来年早々に、実装方式を検討して対応予定。
condition pushdown
今は、MySQLが使うと判断したindexの条件しか
ストレージエンジン側で利用していないが、
condition pushdownをサポートするとそれ以外の
絞り込み条件も利用できるようになる。
groongaはドリルダウンをサポートしているので、
絞り込み条件をストレージエンジンに持ち込めると
結構効果が期待できる。
点以外の空間情報
今は、空間情報は点のみサポート。
google mapに地点表示するような使い方なら、
今の機能(点のみのサポート)で大丈夫。
要件次第で実装時期検討。
0跨ぎの緯度経度
日本の緯度経度では問題ないが、0度を跨ぐ緯度経度
での検索ができない。
0度を跨ぐ場合は、条件を0度で分割して、or検索して
ください。
要件次第で実装時期検討。
MySQL 5.6から登場する正確な位置比較関数
今は「MBR~」という関数のみをサポートしている。
要件次第で実装時期検討。
ストレージモードでのNULL
ラッパーモードではNULL値が利用できるが、ストレージ
モードではまだ利用できない。
要件次第で実装時期検討。
トランザクション
ラッパーモードでInnoDBを利用すると、トランザクション
サポートしているかのような動作になるが、rollbackすると
mroongaのindexの更新だけが実行された状態になるので
注意。
要件次第で実装時期検討だが、mroongaチーム内では
結構議論が進んでおり、動き出しは早いかも。
repair table
今のところgroongaが壊れても、repair tableコマンドで修復できない。
ラッパーモードの場合は、ラップしているストレージエンジンが無事なら、
同じ構造のテーブルを別に作成し、
insert into new_table select * from broken_table;
rename table broken_table to old_table,
new_table to broken_table;
で復旧。
ストレージモードの場合は、あらかじめレプリケーションなどで複製を
作っておき、壊れたところで、MySQLを停止した上で、
複製のデータディレクトリの該当のデータディレクトリとmrnファイルを固め、
復旧先のデータディレクトリで解凍し、MySQL起動で復旧する。
(該当データベースにmroonga以外のテーブルがある場合は、
そのテーブルのファイルはコピーの対象外とする必要があるので注意)
repair table
(例:testデータベースの場合)
複製サーバにログイン
MySQL停止
cd data_dir
tar cvfz ./test.tgz ./test*
MySQL起動
./test.tgzを復旧先サーバのデータディレクトリにコピー
復旧先サーバにログイン
MySQL停止
cd data_dir
tar xvfz ./test.tgz
MySQL起動
Spiderの冗長化機能を使っており、PKがあるテーブルの場合は、
spider_copy_tables()で無停止復旧もできるよ。
parallel searching (Spider)
現在のところ、Spiderでparallel searchingをサポート
していない。
今年中か来年早々に対応予定。
http://wild-growth.blogspot.com/
http://spiderformysql.com
Kentoku SHIBA (kentokushiba[at]gmail[dot]com)
Any Questions?
Thank you for taking
your time!!