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*****