tatsuya sasaki
tatsu****@gmail*****
2010年 11月 30日 (火) 00:58:24 JST
須藤様
早速の御返信ありがとうございます。
ササキです。
なるほど。それぞれの構成時でのキャッシュの位置などが
良く理解できました。詳細なご説明ありがとうございます!
> データベースファイル全体の容量はどのぐらいになっていますか?
> (du -hs $(dirname ${DATABASE_PATH}))
> それが全部メモリに載るようなら大丈夫そうな気がしますが。。。
諸事情により実データ全件を取り込むことができず・・・1,000件だけ
実データを入れてみました。
[sasaki @ mars /home/sasaki]$ du -hs /tmp/documents_groonga/
5.0M /tmp/documents_groonga/
実際のデータは約200万件なので上記1000件分のファイルサイズだと何の
参考にもならないですね・・・。
以上、宜しくお願いいたします。
ササキ
2010/11/29 Kouhei Sutou <kou****@clear*****>:
> 須藤です。
>
> In <AANLkTi=cUbGN5=kew_gpZ7XZv96oeunbBpaw=0=RDQr+****@mail*****>
> "[groonga-dev,00410] groonga のスタンドアロン起動 or HTTPサーバ起動" on Mon, 29 Nov 2010 14:58:40 +0900,
> tatsuya sasaki <tatsu****@gmail*****> wrote:
>
>> rroongaでの接続、HTTPからの接続等いろいろ試している
>> 段階の初心者です。
>> 開発者様、すばらしいアプリケーションの開発ありがとうございます!
>
> ありがとうございます!
>
>> Web(Rails3)とgroongaが同一サーバに存在することになるので
>> 是非ともrroongaを使用したいところではあるのですが、その場合は
>> 検索リクエストの度にgroongaのdbファイルを開き検索を行うこと
>> になり(groonga側にキャッシュが存在せず?)パフォーマンスが気に
>> なっております。
>> # るびまサーチがこの方式だったような・・・。
>
> たしかにるりまサーチはgroongaサーバを起動しない構成です。
> が、リクエスト毎にDBファイルを開くのではなく、Webフロントエ
> ンドのプロセス(RailsではなくRackベース)が起動する時に一度
> だけ開いています。(config.ruで開いています。)
>
> Rails 3の場合はActiveGroongaを使うとそのあたりの面倒をみてく
> れます。
>
> Gemfileに以下を追加して、
>
> gem 'activegroonga'
>
> config/application.rbの
>
> require 'rails/all'
>
> の次の行に
>
> require 'active_groonga/railtie'
>
> を加えると、起動時に一度だけDBファイルを開いて、そのプロセス
> ではずっと使いつづけます。現在使っているrroongaのコードは変
> 更する必要はありません。
> (データベースのパスはconfig/groonga/ymlで指定できます。)
>
>> groongaをHTTPサーバとして起動すれば毎回dbファイルを開くことも
>> なく、キャッシュ等も生存してくれるとは思うのですが、この辺りの
>> パフォーマンスの違いは大きいものでしょうか?
>
> groongaをサーバとして利用した場合、同じクエリがきた場合はキャッ
> シュした結果を返しています。例えば、
>
> select --table users --match_columns name --query 山田
>
> というクエリを2回実行すると、2回目はキャッシュされた結果が返っ
> てきます。rroongaで直接データベースを扱っている場合はこの機能
> はありません。
>
> 代わりに、Webフロントエンドの結果(HTTPレスポンス)をキャッ
> シュするRackミドルウェアがあります。るりまサーチもこれを使っ
> て、HTTPレスポンスをキャッシュしています。Rails 3もRackベー
> スなのでこれを使用することができます。
>
> このキャッシュをするRackミドルウェアはrackngaというパッケー
> ジにRacknga::Middleware::Cacheという名前で含まれています。
> このミドルウェアはキャッシュ用のgroongaデータベースを作成し
> ます。groongaのデータベースは複数のプロセス(Webフロントエン
> ド)から同時に開くことができるので、Webフロントエンドを同時
> に複数立ち上げているときでもキャッシュを共有することができま
> す。ただ、まだ導入ドキュメントがないので、使い方はるりまサー
> チを見てください、ということになってしまいます。。。
>
>> ちなみにシステムの要件としては、
>> 200万文書(1文書500文字程度)を全文検索できるようにする。
>> 検索を同時に行うユーザ数は多くても10人くらいです。(通常は2,3人です。)
>> システム環境は、CPU 3GHz, Memory 4GB です。
>>
>> 検索の都度 rroonga で dbファイルを開いて検索しても余裕でさばける
>> ものでしょうか?
>
> ざっくりですが。。。
> データベースファイル全体の容量はどのぐらいになっていますか?
> (du -hs $(dirname ${DATABASE_PATH}))
> それが全部メモリに載るようなら大丈夫そうな気がしますが。。。
> (今夜、詳しい人に聞いてみます!)
>
> --
> 須藤 功平 <kou****@clear*****>
> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)
>
> Mozilla Firefox/Thunderbirdサポート:
> http://www.clear-code.com/services/mozilla/menu.html
> 迷惑メール対策:
> http://www.clear-code.com/software/milter-manager.html
> テスティングフレームワーク:
> http://www.clear-code.com/software/cutter.html
> http://www.clear-code.com/software/uxu.html
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>