[groonga-dev,01889] Re: express-droongaの起動方法について

Back to archive index

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




groonga-dev メーリングリストの案内
Back to archive index