[groonga-dev,04199] Re: PGROONGAでレコード追加時にエラー発生

Back to archive index

高見 直輝 takam****@orega*****
2016年 12月 1日 (木) 17:31:40 JST


高見です。

> 須藤です。
> 
> In <20161****@orega*****>
>   "[groonga-dev,04192] Re: PGROONGAでレコード追加時にエラー発生" on Wed, 30 Nov 2016 11:30:10 +0900,
>   高見 直輝 <takam****@orega*****> wrote:
> 
> > ケース1&2双方とも、インデックスファイルの全削除&再構築で回復しました。
> > ケース2に関しては、DBデータの保存先ドライブが一時切断していた(ログ取得時点では接続が回復してい
> > た)ようなので、これがbase/16384/pgrnでのエラーに繋がったのかもしれません。
> 
> 結果を共有してもらってありがとうございます。
> 
>   pgroonga.flush_explicitly = true
> みたいなパラメーターを用意してtrueならINSERT/DELETE/UPDATE後
> やCREATE INDEX後に(OSのディスク書き出しタイミングに任せずに)
> ディスクに書き出すようにしようかと思っています。

この機能によって、ハード障害などが原因の場合にもデータの破損を回避できるようになるのでしょうか?
データ破損を完全に回避することができないのであれば、以下のようなエラー発生時用の機能の方が重要か
もしれません
・ロック中のオブジェクトの一覧取得
 →ロック取得日時が分かれば、再起動によって解放されないロックか判断可能。
・エラーの対象(ロックの場合、データベースORテーブル)
 →毎回、全テーブル再構築をしなくて済む。
・データの破損(SQL実行時にエラーが発生するレベルのもの)
など

> どのくらいかわかりませんが、たぶん書き込みパフォーマンスは落
> ちるのでデフォルトでは有効にしたくないのですが、↑のように必
> 要な人だけが有効にする、ならアリかなぁと思っています。

各コマンド毎にFlushが行われるのは、パフォーマンスが落ち過ぎるような気がします。
トランザクションのコミット毎なら、許容範囲に収まるのではないでしょうか?。

----------------------------- 
高見 直輝 <takam****@orega*****>
株式会社オレガ
TEL:03-3267-0150
FAX:03-3267-0180




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