[groonga-dev,00424] Re: groonga で load コマンドでレスポンスが返ってこない場合の対処方法について

Back to archive index

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




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