[groonga-dev,00439] Re: HTTP経由の連続ロード

Back to archive index

Kouhei Sutou kou****@clear*****
2011年 1月 10日 (月) 11:09:29 JST


須藤です。

In <AANLkTi=AnLYj****@mail*****>
  "[groonga-dev,00438] HTTP経由の連続ロード" on Fri, 7 Jan 2011 15:00:33 +0900,
  Kenichi Aramaki <arama****@mulod*****> wrote:

> HTTP経由で利用しているのですが、メモリ使用量がどんどん増えるので困っています。
> 切り分けしてみたところ、1つのケースですが、ShortTextのベクタカラムに、25文字以上
> つっこむと現象が再現することがわかりました。(1.0.3/1.0.6にて確認)
> (24文字までだと現象が出ません)
> 
> テーブル定義
> table_create --name item --flags TABLE_HASH_KEY --key_type ShortText
> column_create --table item --name vars --flags COLUMN_VECTOR --type ShortText
> 
> データ(これをHTTP経由で投入)
> [{"_key":"0001","vars":["012345678901234567890123456789","012345678901234567890123456789"]}]

報告ありがとうございます!
再現ケースがあってとても助かりました。

> という感じなのですが、使い方が間違っているなど、何かコメントいただけるとうれしいです。

groongaのバグだったので修正しました!
修正版がリリースされるまでの回避策としては以下の方法がありま
す。

  1. groongaコマンドでデータをロードする。

       % groonga db_path < load-data.grn

     load-data.grn:
       load --table item
       [
       {"_key":"0001","vars":["012345678901234567890123456789","012345678901234567890123456789"]},
       ...
       ]

  2. データロード用のgroongaサーバを一時的に立てて、それ経由
     でロードする。

       % groonga --protocol http --port 20041 -s db_path
       % wget http://groonga-server:20041/d/load.json?...
       % wget http://groonga-server:20041/d/shutdown.json

どちらも、ロード用のプロセスを別途用意して、メモリリークの影
響をロード中のみに限定する方法です。

groongaはマルチプロセスに対応しているので、別プロセスでロー
ドしたデータであっても、本groongaプロセスですぐに扱うことが
できます。


-- 
須藤 功平 <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 メーリングリストの案内
Back to archive index