Kouhei Sutou
kou****@clear*****
2013年 10月 30日 (水) 10:17:33 JST
須藤です。 In <CANM+Hhf5YPrkjHvpLniELROtzax=FkQ30UQ4irRUb1aQ4j=2qg****@mail*****> "[groonga-dev,01885] Re: express-droongaの起動方法について" on Mon, 28 Oct 2013 13:15:49 +0900, Naoya Murakami <visio****@gmail*****> wrote: > 分散の目的は、リアルタイムな更新のためでなく、肥大化した > データベースを分割して検索するのが目的です。 なるほど。 > mroongaでの更新の方は、別に分散しなくてもいいと思っていて、 > また、SPIDERでできると思っています。 > 更新と検索の分散ルールが異なっていても問題ないです。 うーん、異なると問題になりそうなんですよ。 というのは、分散して検索するときは、できるだけ速く結果を得る ために、必要なデータを持っているノードにだけ検索リクエストを 送り、それをかき集めてクライアントに返す、みたいなことをしま す。この「必要なデータを持っているノード」というのが分散ルー ルに依存します。更新する側と検索する側が違う分散ルールを使っ てしまうと、「必要なデータを持っているノード」に不整合が発生 して、検索してもヒットしないとか起こるかもなぁと思いました。 > 検索の場合は、mroongaで生成されたgroongaのデータベースを > 単純にgroongaで直接作れられたものと同じようにして、droonga > に載せられればいいなぁと思ってます。 > (mysql経由では基本的には全文検索はしない。) 分散していない場合はいけるんじゃないかなぁと思います。 > ストレージモードで作られるgroongaのデータベースは、mysqlの > データディレクトリに作られるということと、.mrnというファイル名で > 作られることを除き、基本的にgroongaで直接作られるデータベース > と変わりないという認識です。 > (DDLがある程度、決まった型になるとは思いますが。) はい、正しいです。 > しかしながら、mroongaを使うメリットは、個人的には、以下のように考えています。 > > ・MySQLとの連携が容易。 > MySQLの他のストレージエンジンから、insert selectで簡単にデータを移して、 > groongaのデータベースを構築できます。 > mroongaのデータベースのほかに、データ保持用のMySQLのデータベースを使ってます。 > 堅牢な他のストレージエンジンとレプリケーションもできます。 > MySQLだと、関数つかって、データを加工しながら、データを移したりいろいろ便利です。 > > ・MySQLでテーブル設計が行える。 > 使い始め当初は、groongaになじみがなく、なかなか、groongaのコマンドやDDL設計に > とっつきにくかったというのがありました。 > これは、ストレージモードを使い始めて、groongaにだいぶなじみがでてきたので、 > メリットとしてはだいぶ薄くなってきました。なので、MySQLとの連携を無視すれば、 > 検索用にgroongaで直接つくるのでもいいのかもなぁとも思っています。 ごもっともだと思います! あと、既存のMySQLクライアントライブラリーを使えるのも便利な んじゃないかなぁと思っています。 > 当方のケースは、レアケースだと思うので、あまりに気にしなくていいです! はい、わかりました! > こちらでフィットする使い方をいろいろ試行錯誤します。今後の開発に期待しています! ありがとうございます! -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) Groongaサポート: http://groonga.org/ja/support/ パッチ採用はじめました: http://www.clear-code.com/recruitment/ コミットへのコメントサービスはじめました: http://www.clear-code.com/services/commit-comment.html