[groonga-dev,03550] Re: Mroonga で data truncated for primary key column: <id> が発生する

Back to archive index

各務 洋 kagam****@outwa*****
2015年 10月 5日 (月) 20:40:32 JST


お世話になります、各務です。

> 実は、該当レコードのタイムスタンプと問題発生時間の相関はない
> のです。このテーブルは木構造のデータ構造でレコードを管理して
> いるのですが、該当レコードが2つ見えているということは、その
> 木構造の中のノードのリンクが壊れているということです。該当レ
> コードではなく、ノードのリンクが壊れていることがポイントです。

なるほど、この時の INSERT とは限らないという事ですね。
同じく、同一キーでの削除と追加時に発生すると考えています。
(本番環境でもこれが多いので)

> リンクはレコードの追加・削除のとき(!= 該当レコード作成時)
> に変更するので、そのときに正しく変更できなければ壊れるのです。
> 
> 
> ということで、lock_clearが原因で壊れた可能性が高いと思いまし
> た。

lock_clear を行わない状態でテストしてみました。
(ちょっとパターン変えました)
0 での重複しか再現できませんでしたが、Duplicate Index 状態にはなりました。

> select --table tbl_test_pat_0005 
[[0,1444042564.47682,0.042431116104126],[[[2],[["_id","UInt32"],["_key","Int64"],["a_id","Int64"],["id","Int64"],["t1_date","Time"],["t2_date","Time"],["t_text","LongText"]],[248,964278,0,0,0.0,0.0,""],[248,964278,0,0,0.0,0.0,""]]]]

> select --table tbl_test_pat_0005 --query a_id:10001
[[0,1444042653.16585,0.00229477882385254],[[[1],[["_id","UInt32"],["_key","Int64"],["a_id","Int64"],["id","Int64"],["t1_date","Time"],["t2_date","Time"],["t_text","LongText"]],[183,964507,10001,964507,1444028598.0,0.0,"t10001"]]]]

↑これも全件表示では出てこないが、指定すると出てきました。
(Mroonga からも同一ですね。)

とり急ぎ、本日確認できた所まで。

P.S
主キーが重複している分は全部削除しないといけないと今頃気づきました……。
(主キーの重複は本番環境では発生していないので)

----
各務
kagam****@outwa*****




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