mroongaで悩み中・・・

ある記事検索(約2000万件、15G)をmroongaで開発する予定なのですが、パフォーマンスの面でどう構成すべきか悩んでいる。

ハードは1号機・2号機のアクティブスタンバイ。もしくはアクティブアクティブでもいいけど。

単純な全文検索では問題無いのですが、期間指定をした場合など、絞込みでどうしてもMySQLのインデックス利用制限でSolrに比べて遅くなる。。。自分の低スペック開発機で試した限りでは。

ストレージモードでgroongaコマンドを発行すると多少スピードアップはするのだけど、それでもSolrには及ばない。ストレージモードではmy.cnfでメモリの調整とかはしないはずなので、設定として他にチューニングできるところがあるのか不明。

メモリを増強したらもっと早くなるのか?とも思うのだけど、全文検索用と他のインデックスがすべてメモリ上にのったして、使用されるインデックス数の制限が取り払われるわけではないのだから、そんなに改善されないのでは?という疑問も。分からへん。

mroongaはMySQLのパーティショニングには対応していないようなので、テーブル分割するのが現実的なのか。問題は年度ごとに分割した場合、同一IDの記事が年度またぎで更新された場合のお直しをしてやる必要があること。

Spiderなるシャーディングを可能にするストレージエンジンがあるのだけど、2台構成の場合、Spiderのマスターとノードを同居させるのとか、障害時の切り替えとかまだよくわからないことが多い。