Yutaro Shimamura
yu****@irx*****
2010年 12月 27日 (月) 19:11:46 JST
佐藤さま
島村です。ご連絡が遅くなってしまいすみませんでした。
> すいません、「ロードデータ自体」というのは何を指しているのでしょうか。
こちらは、データのインポートをしていたとのことでしたので、
そちらのデータを意味していたのですが、お手元に残っていないと難しいですね、、
> 何か特殊な文字をloadすると再現する可能性があったりするものなのでしょうか。
> であれば、その可能性はあります。
> ブログの記事には、MS-Officeからコピペした時などに変な制御文字が混入しているケ
> ースなどがあるからです。
>
> もしくは、本件はrroongaを利用してDBへloadをしました。
> そのrroongaの利用方法により再現する可能性はあるのでしょうか。
現状での佐藤さまのデータの状態はDBが破損して、その後のロードが失敗している、というものでして、
その原因としては、おっしゃられているような特殊な文字や行で必ず起こるものか、
もしくはrroongaでのロード処理を繰り返しているうちに問題が顕在化して破損したものか、
いろいろ可能性があるなかで、現状判別がついておりません。。
再現するまでにロードしたデータがすべて残っていれば、そちらで調査は可能になるとは思います。
> 仮に本番運用の際にこのような現象が発生した場合、
> INDEXのみであれば、一回INDEXを削除して、再度生成することで現象が戻るのでは?
> などと想像するのですが、この考え方は合っているのでしょうか。
> (groongaの場合はINDEXテーブルの削除、再生成になると思っています)
現状いただいたデータでは、インデックスのみ破損していた状況ですので
ご質問にあった現象はclearlockの後にインデックスを再構築(remove->create)で問題なく修正できると思われます。
こちらで確認してみましたが、問題なくロードが可能になっています。
> column_remove Terms entry_body
[[0,1293434211.47173,0.330267185],true]
> column_remove Terms entry_subject
[[0,1293434230.49484,0.038125306],true]
> column_list Terms
[[0,1293434239.58268,0.000121314],[[["id","UInt32"],["name","ShortText"],["path","ShortText"],["type","ShortText"],["flags","ShortText"],["domain","ShortText"],["range","ShortText"],["source","ShortText"]],[261,"_key","","","COLUMN_SCALAR","Terms","ShortText",[]]]]
> column_create --table Terms --name entries_subject --flags COLUMN_INDEX|WITH_POSITION --type Entries --source subject
[[0,1293434342.06676,16.411855208],true]
> column_create --table Terms --name entries_body --flags COLUMN_INDEX|WITH_POSITION --type Entries --source body
[[0,1293434383.78435,1018.568054808],true]
> load --table Entries --input_type json
[ {"_key": "test_key0002", "body": "てすと。"}
]
[[0,1293437191.6382,0.758903646],1]
以上、どうぞよろしくお願いいたします。
On Dec 23, 2010, at 2:02 AM, yfa02****@nifty***** wrote:
> 島村様
>
> お世話になっております、佐藤です。
>
>
>> こちらは、データをロードして再現するようなので、dbではなくロードデータ自体を
> 頂くことは可能ですか?
>> 初期状態のdbにロードして再現する手順を踏んで、こちらで現象を追ってみたいと考
> えています。
>
> すいません、「ロードデータ自体」というのは何を指しているのでしょうか。
>
> DBの中身を見ていただくと分かると思うのですが、ブログの新着記事をクローリングし
> てため込んだ
> データのため、手元にロードデータを保持しておりません。
>
> 再度クローリングをすることは可能ですが、お渡ししたDBの中身と同じにはならないで
> す。
>
> 最後にロードしたであろう記事データ(一番最後にloadした行)をgroongaの中から探
> してみて、
> 再度同じ記事データをロードして再現するかどうかを明日以降に試してみたいと思いま
> す。
>
> が、その最後の一記事のみをloadして再現しないのではないかと思ってしまうのですが
> 。。
> 何か特殊な文字をloadすると再現する可能性があったりするものなのでしょうか。
> であれば、その可能性はあります。
> ブログの記事には、MS-Officeからコピペした時などに変な制御文字が混入しているケ
> ースなどがあるからです。
>
> もしくは、本件はrroongaを利用してDBへloadをしました。
> そのrroongaの利用方法により再現する可能性はあるのでしょうか。
>
>
>> 調査の結果、頂いたdbはインデックスが既に破損している状態であることがわかりま
> した。
>
> ところで、質問なのですが、今回は「インデックスが破損している状態」とのことです
> が、
> これは所謂MySQL的なINDEXが壊れているだけで、本体データは無事なのでしょうか?
>
> 仮に本番運用の際にこのような現象が発生した場合、
> INDEXのみであれば、一回INDEXを削除して、再度生成することで現象が戻るのでは?
> などと想像するのですが、この考え方は合っているのでしょうか。
> (groongaの場合はINDEXテーブルの削除、再生成になると思っています)
>
>
> よろしくお願いいたします。
>
> ----- Original Message -----
>> From: Yutaro Shimamura <yu****@irx*****>
>> Date: Fri, 17 Dec 2010 14:46:38 +0900
>> To: 全文検索エンジンGroonga開発メーリングリスト
>> <groon****@lists*****>
>> Subject: [groonga-dev,00421] Re:
>> groonga で load コマンドでレスポンスが返ってこない場合の対処方法について
>>
>>
>>
>> 島村です。
>>
>> 調査の結果、頂いたdbはインデックスが既に破損している状態であることがわかりま
> した。
>>
>>>>> 調べてみたところ、loadコマンドを発行時に、レスポンスが返ってこなくなって
> いるよ
>>>>> うです。
>>>>> rroonga(のaddメソッド)経由ではなく、groonga上でloadコマンドを利用しても
> 結果
>>>>> は同じでした。
>>
>>
>> こちらは、データをロードして再現するようなので、dbではなくロードデータ自体を
> 頂くことは可能ですか?
>> 初期状態のdbにロードして再現する手順を踏んで、こちらで現象を追ってみたいと考
> えています。
>>
>> 以上、お手数ですがご確認いただければと思います。
>>
>> どうぞよろしくお願いいたします。
>>
>> On Dec 14, 2010, at 1:08 AM, Yutaro Shimamura wrote:
>>
>>>
>>> 佐藤さん
>>>
>>> 島村です。
>>>
>>> いただいたデータをもとに調査したところ、現状ではclearlock後の一番初めのload
> で失敗し、
>>> その後 _keyの違うものをloadすると成功しているようです。
>>>
>>> まずは現象が確認できたので、調査させていただきます。
>>>
>>> こちらにチケットを作成しました。
>>> http://redmine.groonga.org/issues/772
>>>
>>>
>>> どうぞよろしくお願いいたします。
>>>
>>> On Thu, 9 Dec 2010 15:32:57 +0900
>>> Yutaro Shimamura <yu****@irx*****> wrote:
>>>
>>>>
>>>> 佐藤さん
>>>>
>>>>
>>>> 島村です。はじめまして。
>>>>
>>>> 森に代わってお返事させて頂きます。
>>>>
>>>>
>>>>> テストデータですが、公開情報なので手元にあるDBファイルごとお渡しすること
> は可能
>>>>> なのですが、
>>>>> 1G以上あり、実質的にお渡しできない状況です‥。
>>>>> (何かお渡しできる良い手段がありましたら教えてください。)
>>>>
>>>> こちらに関しては、別途FTPサーバーのアドレスをお送りするので、
>>>> そちらにアップロードして頂くことは可能でしょうか?
>>>>
>>>>
>>>> どうぞよろしくお願いします。
>>>>
>>>> On Dec 9, 2010, at 3:23 PM, Kouhei Sutou wrote:
>>>>
>>>>> 須藤です。
>>>>>
>>>>> In <13486****@nifty*****>
>>>>> "[groonga-dev,00416] Re: groonga で load コマンドでレスポンスが返ってこな
> い場合の対処方法について" on Thu, 9 Dec 2010 13:32:06 +0900 (JST),
>>>>> sato <yfa02****@nifty*****> wrote:
>>>>>
>>>>>>> よろしければお使いのスキーマを、(もし可能であれば、テストデータも・・)
>>>>>>> いただくことは可能でしょうか?
>>>>>>
>>>>>> 逆質問になってしまうのですが、groongaでスキーマを正確にお伝えするには、
>>>>>> どういう手段が適切でしょうか。
>>>>>> MySQLですと、
>>>>>>
>>>>>> SHOW CREATE TABLE;
>>>>>> SHOW INDEXES FROM [TABLE NAME];
>>>>>> コマンドで、正確なスキーマやINDEX情報が取れますが、
>>>>>> groongaのドキュメントを見る限り、そういったコマンドを見つけることができ
> ません
>>>>>> でした。
>>>>>
>>>>> 実はdumpコマンドというのがあって、それを使うとスキーマ(とデー
>>>>> タ)を取得できます。
>>>>> http://groonga.org/docs/commands/dump.html
>>>>>
>>>>> 今のところ、ダンプ結果を全部作ってから出力するようになってい
>>>>> るので、しばらく何も出力されないと思います。(本当はインクリ
>>>>> メンタルに出力するようにしたい。)
>>>>>
>>>>> % groonga /path/to/db dump
>>>>> table_create ...
>>>>> ...
>>>>> load ...
>>>>> ...
>>>>>
>>>>> フォーマットはgroongaコマンドの羅列になります。なので、デー
>>>>> タベースをリストアする時はdumpの出力をgroongaの入力にします。
>>>>> (MySQLとかがSQLでダンプするような感じです。)
>>>>>
>>>>> load以降はデータ部分になるので、スキーマのみ必要な場合はload
>>>>> 以降は無視してもかまいません。
>>>>>
>>>>>> 他にもテーブル一覧なども後から取りたかったりするのですが、それも分かりま
> せんで
>>>>>> した。
>>>>>
>>>>> 実はtable_listコマンドとというのがあって、それを使うとテーブ
>>>>> ル一覧を取得できます。
>>>>> http://groonga.org/docs/commands/table_list.html
>>>>>
>>>>> こちらはselectコマンドなどと同じくJSONになります。
>>>>>
>>>>> % groonga /path/to/db table_list
>>>>> [[...], ...]
>>>>>
>>>>>
>>>>>> と、ここまで書いていてlimit 0の返却値がスキーマーに相当するのかもと思い
> ました
>>>>>> ので、
>>>>>> その情報をお伝えします。
>>>>>
>>>>> ありがとうございます!
>>>>>
>>>>>> テストデータですが、公開情報なので手元にあるDBファイルごとお渡しすること
> は可能
>>>>>> なのですが、
>>>>>> 1G以上あり、実質的にお渡しできない状況です‥。
>>>>>> (何かお渡しできる良い手段がありましたら教えてください。)
>>>>>
>>>>> こちらもありがとうございます!
>>>>> たぶん、森さんから連絡がいくと思います。
>>>>>
>>>>>
>>>>> --
>>>>> 須藤 功平 <kou****@clear*****>
>>>>> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)
>>>>>
>>>>> プログラミングが好きなソフトウェア開発者を募集中:
>>>>> http://www.clear-code.com/recruitment/
>>>>>
>>>>> _______________________________________________
>>>>> groonga-dev mailing list
>>>>> groon****@lists*****
>>>>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>>>>
>>>> _______________________________________________
>>>> groonga-dev mailing list
>>>> groon****@lists*****
>>>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>>>
>>> _______________________________________________
>>> groonga-dev mailing list
>>> groon****@lists*****
>>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>>
>> _______________________________________________
>> groonga-dev mailing list
>> groon****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev