mroonga unsupported feature_20111129

14
mroongaの未サポート機能 (2011/11/29時点) Kentoku SHIBA kentokushiba[at]gmail[dot]com

Upload: kentoku

Post on 20-Jan-2015

2.148 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Mroonga unsupported feature_20111129

mroongaの未サポート機能 (2011/11/29時点)

Kentoku SHIBA

kentokushiba[at]gmail[dot]com

Page 2: Mroonga unsupported feature_20111129

mroongaの未サポート機能

・UTF8以外の文字コード

・COLLATION

・condition pushdown

・点以外の空間情報

・0跨ぎの緯度経度

・MySQL 5.6から登場する正確な位置比較関数

・ストレージモードでのNULL

・トランザクション

・repair table

・parallel searching (Spider)

Page 3: Mroonga unsupported feature_20111129

UTF8以外の文字コード

今は実質utf8のみ利用可能。

http://redmine.groonga.org/issues/1160

utf8mb4、cp932、eucjpmsを今年中か、来年早々に

対応予定。

Page 4: Mroonga unsupported feature_20111129

COLLATION

今はNFKC使ってる。

MySQLのcollation使いたいという要望あり。

http://redmine.groonga.org/issues/1150

今年中か来年早々に、実装方式を検討して対応予定。

Page 5: Mroonga unsupported feature_20111129

condition pushdown

今は、MySQLが使うと判断したindexの条件しか

ストレージエンジン側で利用していないが、

condition pushdownをサポートするとそれ以外の

絞り込み条件も利用できるようになる。

groongaはドリルダウンをサポートしているので、

絞り込み条件をストレージエンジンに持ち込めると

結構効果が期待できる。

Page 6: Mroonga unsupported feature_20111129

点以外の空間情報

今は、空間情報は点のみサポート。

google mapに地点表示するような使い方なら、

今の機能(点のみのサポート)で大丈夫。

要件次第で実装時期検討。

Page 7: Mroonga unsupported feature_20111129

0跨ぎの緯度経度

日本の緯度経度では問題ないが、0度を跨ぐ緯度経度

での検索ができない。

0度を跨ぐ場合は、条件を0度で分割して、or検索して

ください。

要件次第で実装時期検討。

Page 8: Mroonga unsupported feature_20111129

MySQL 5.6から登場する正確な位置比較関数

今は「MBR~」という関数のみをサポートしている。

要件次第で実装時期検討。

Page 9: Mroonga unsupported feature_20111129

ストレージモードでのNULL

ラッパーモードではNULL値が利用できるが、ストレージ

モードではまだ利用できない。

要件次第で実装時期検討。

Page 10: Mroonga unsupported feature_20111129

トランザクション

ラッパーモードでInnoDBを利用すると、トランザクション

サポートしているかのような動作になるが、rollbackすると

mroongaのindexの更新だけが実行された状態になるので

注意。

要件次第で実装時期検討だが、mroongaチーム内では

結構議論が進んでおり、動き出しは早いかも。

Page 11: Mroonga unsupported feature_20111129

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以外のテーブルがある場合は、

そのテーブルのファイルはコピーの対象外とする必要があるので注意)

Page 12: Mroonga unsupported feature_20111129

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()で無停止復旧もできるよ。

Page 13: Mroonga unsupported feature_20111129

parallel searching (Spider)

現在のところ、Spiderでparallel searchingをサポート

していない。

今年中か来年早々に対応予定。

Page 14: Mroonga unsupported feature_20111129

http://wild-growth.blogspot.com/

http://spiderformysql.com

Kentoku SHIBA (kentokushiba[at]gmail[dot]com)

Any Questions?

Thank you for taking

your time!!