Kouhei Sutou
kou****@clear*****
2015年 8月 31日 (月) 23:54:56 JST
須藤です。 In <CA+Tq-Rp3F0ZQP78NL1A-B4k=Z+Pqc8HsxQ6N-EmcJC_syOyu****@mail*****> "[groonga-dev,03436] Re: groonga-clientのタイムアウト値と、遅いクエリについて" on Mon, 31 Aug 2015 09:27:07 +0900, Hiroyuki Sato <hiroy****@gmail*****> wrote: > ところで、現状のキャッシュの仕組みについて教えて下さい。 > > 1,2それぞれ正しいと思うのですが、2の検索結果を保有するのはどのぐらいの > 期間持っているのでしょうか? ... > 1, 同じ検索条件であれば、過去に検索したデータがOSのページキャッシュに乗り > キャッシュに乗っている間は検索が速くなる。 > 2, 一度検索した内容は、Groonga自身がキャッシュテーブル?を保有するので、 > 再検索した場合には、検索結果をキャッシュから持ってくる > (どのぐらいの間?) いわゆるLRU(Least Recently Used)で保有しているので、同じク エリーが何度もじっこうされるならそのキャッシュはずっと残って います。 一方、一回しか実行されないようなクエリーは一度キャッシュに載っ ても時期にキャッシュから落ちます。 どのくらいで落ちるかというと、デフォルトだと最短で100リクエ スト後に落ちます。というのは、最新100件の結果だけをキャッシュ するようになっているからです。 これは、cache_limitというコマンドで動的に変更できます。 参考: http://groonga.org/ja/docs/reference/commands/cache_limit.html > クエリのログを見たら下記のような動作をしているなと思ったので間違っている > かもしれません。 あっています! > ちなみに今回の検索は同じ検索はあまりしないので、 > 一回の検索がそこそこ速くなってくれる方がありがたいです。 > 一時テーブルをメモリに書くなど 一時テーブルにはしませんが、一回の検索でも早くするようにしま す。手元で実験した感じでは10倍か100倍くらいには速くなります。 > こちらで何かできることがあればおっしゃってください。 今のところ大丈夫です! 実装のアイディアが2パターンあるので、整理して森さんにどっち がいいですかねぇと聞こうと思っています。 なので、私の空き時間ができれば進みます。。。 PGroongaのリリースをして、今年のいい肉の日のGroongaイベント の会場が見つかってから、ですかねぃ。。。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/