[groonga-dev,00651] Re: groongaコマンドによるload文の連続実行で一部のカラムの値が混ざる

Back to archive index

Michisu, Toshikazu michi****@maric*****
2011年 12月 7日 (水) 11:29:28 JST


須藤様

道須です。ご丁寧なお返事ありがとうございます。

すみません、ML登録時に確認メールがスパム入りしてしまっていたため、入会で
きておりませんでした。。
今日お返事に気がつき、再度登録処理を行いました。

> 念のため、最新のgroongaでも確認してもらえると嬉しいのですが、
> 変更点を見る限り、直ってはいなそうです。。。すみません。。。

タイミングを見て最新版にしてみます。

> loadで上書き更新だけではなくdeleteでレコード削除も行なってい
> る、などはあるでしょうか?

はい、あります。
別プロセスですが、直前に同様の方法でまとめてdeleteを行っています。

> 怪しいですね。groongaでは内部では文字列を「'\0'で終端するバ
> イト列」ではなく、「バイト列+長さ」で扱っているため「長さ」
> を間違えるとそのようなことが発生しそうです。
> 
> ただ、(1)のすぐ次に(3)がある、ということではないんですよ
> ね。。。すぐ次ならだいぶ怪しいのですが。。。

なるほど。
すぐ次ではないですね。1万コマンド以上飛んでいます。

> あと、もしよろしければ、壊れた状態のデータベースに対して以下
> のコマンドを実行した結果を教えてもらえますか?
> 
>   % groonga DB_PATH check Item.item_id

このような結果が返されました。
何か分かりますでしょうか?

[[0,1323224679.30683,0.012095691],[{"flags":"0000C000","curr
seg":0,"curr pos":4194304,"max_element_size":4096},[{"seg id":0,"seg
type":3,"seg value":0},{"seg id":1,"seg type":0,"seg value":4},{"seg
id":2,"seg type":0,"seg value":5},{"seg id":3,"seg type":0,"seg
value":3},{"seg id":4,"seg type":0,"seg value":6},{"seg id":5,"seg
type":0,"seg value":5},{"seg id":6,"seg type":0,"seg value":5},{"seg
id":7,"seg type":3,"seg value":1},{"seg id":8,"seg type":0,"seg
value":4},{"seg id":9,"seg type":0,"seg value":5},{"seg id":10,"seg
type":4,"seg value":1},{"seg id":11,"seg type":4,"seg value":0},{"seg
id":12,"seg type":4,"seg value":2},{"seg id":13,"seg type":4,"seg
value":3}]]]

> あとは。。。
> もし、私がこのシステムに直接触れるとしたら、1load単位でデー
> タを更新しているという事なので、loadしてすぐにloadしたデータ
> の内容が壊れていないか(正しい値で更新されているか)を確認す
> るラッパースクリプトみたいなものを書いて様子を見てみる気がし
> ます。

わざわざ例示ありがとうございます。
参考にさせていただきます。

よろしくお願いいたします。


-- 
株式会社マリーチ / Marici, Inc.
 東京都渋谷区渋谷3-5-16 渋谷三丁目スクエアビル2F
 http://www.marici.co.jp/
 TEL 03-5843-6456 / FAX 03-4333-0282
道須利一 / Michisu, Toshikazu
 michi****@maric*****




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