[groonga-dev,03984] Re: Unmapが必要な状態でのロードについて

Back to archive index

Susumu Yata susum****@gmail*****
2016年 3月 16日 (水) 01:56:38 JST


矢田です.

> Unmap/reopenが必要な状態の時、selectではエラーコードを返してくれますが、loadの時には正常に完了した処理コードを返します。

実のところ select における検出も不完全なもので,検出しやすいものしか対応していません.
依存関係を持つテーブルが truncate された場合などは怪しいです.
きっちり検出してくれるとは期待しない方が良いです.

load については,与えられた JSON を逐次処理すること,
途中でエラーを検出しても処理が止まらないようにしていること,
可能な範囲でデータを格納するようにしていることなどから,
さらに問題がややこしくなっています.

load の途中でエラーが起きてもエラーコードが返ってこない件については,
以下の issue が関係していると思います.
https://github.com/groonga/groonga/issues/495
現状ではヘッダ相当の部分にエラーがあるときだけエラーコードが返るようになっています.

やはり, load の途中でエラーが起きたときは,エラーを返すようにすべきでしょうか.

2016年3月15日 23:22 Kouhei Sutou <kou****@clear*****>:
> 須藤です。
>
> In <E4CB1****@irx*****>
>   "[groonga-dev,03981] Unmapが必要な状態でのロードについて" on Tue, 15 Mar 2016 05:15:31 +0100,
>   Yutaro SHIMAMURA <yu****@irx*****> wrote:
>
>> Unmap/reopenが必要な状態の時、selectではエラーコードを返してくれますが、loadの時には正常に完了した処理コードを返します。
>>
>> この時unmap対象となるテーブルは更新されておらず、値も欠損する状態なので
>> ロードも同じようにエラーコードとかがついて判別できる状態だと良いな、と思いました。
>
> loadはバルクロードなので、エラーコードで通知するのが苦手なん
> です。戻り値のロードできたレコード数もレコードが追加されたら
> +1するようにしていて、レコードの全カラムが追加できたら、じゃ
> ないんで、そっちで確認することも難しいです。
>
> しかし!ログにはエラーが残っているのでそっちを確認してもらえ
> ますか?
>
> 2016-03-15 23:10:50.901418|e| [table][load] failed to set column value: pat is truncated, please unmap or reopen the database: key: <"test4">, column: <test.txt>, value: <"ghi">
>
> みたいなのがでているはずです。
>
>
> --
> 須藤 功平 <kou****@clear*****>
> 株式会社クリアコード <http://www.clear-code.com/>
>
> Groongaベースの全文検索システムを総合サポート:
>   http://groonga.org/ja/support/
> パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
>   http://www.clear-code.com/recruitment/
> リーダブルコードワークショップ:
>   http://www.clear-code.com/services/code-reader/readable-code-workshop.html
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.osdn.me/mailman/listinfo/groonga-dev



-- 
Susumu Yata <susum****@gmail*****>



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