Kouhei Sutou
kou****@clear*****
2016年 2月 1日 (月) 23:17:05 JST
須藤です。 In <20160****@orega*****> "[groonga-dev,03892] Re: PGRNファイルが開けない?" on Mon, 01 Feb 2016 19:21:24 +0900, 高見 直輝 <takam****@orega*****> wrote: > autovacuum = offにした状態で確認したところ、ANALYZEがトリガであることが > 判明しました。 ありがとうございます! ANALYZEは内部的にVACUUMと処理を共有しているので、ANALYZEが実 行されたらPGroongaのファイルが消えても(VACUUMのときと同じよ うな動きになっても)おかしくないです。 > ※InsertとSelectでは発生しないことを確認。 > 以下の処理を行い、再現することを確認しました。 > 1.pgrn*ファイルの削除 > 2.REINDEX実行 > 3.ANALYZE実行 > この後、数分以内にobj_removeが実行され始めます。 念のため↓について確認させてください。 > オブジェクトが残っている状態でpg_classからデータが消えるという状況がよく > 分かっていないのですが、上記手順における、REINDEXの実行後とANALYZEの実行 > 後(obj_removeの完了後)でpg_classの内容を比較しました。 > その結果、PGroongaのインデックスのレコード数並びに内容に変化はありません > でした。 > pg_classの内容取得に使用したSQLは以下の通り。 > select oid, * from pg_class; 1.の後に select oid, * from pg_class; を実行するとPGroongaを使ったインデックスの名前は存在していま すか? (私は存在しているのだと思っています。) 念のため確認方法を書くと。。。 relnameにインデックス名が入っているはずなので、それで確認で きます。また、そのときのoidも記録しておいてください。REINDEX 実行時にPGroongaのログに残る「SourcesXXX」のXXXと同じかを確 認したいからです。 次に、2.の後に select oid, * from pg_class; を実行するとPGroongaを使ったインデックスの名前は存在していま すか? (内容は変わっていないということなので存在しているのだと思っ ています。) また、2.のときにPGroongaのログに残る「SourcesXXX」のXXXと↑ で確認したoidは同じですか? (同じなんだと思っています。) 最後に、3.の後に select oid, * from pg_class; を実行するとPGroongaを使ったインデックスの名前は存在していま すか? (内容は変わっていないということなので、ここでも存在している のだと思っています。) ↑(...)の中に書いた予想通りだと想定外の状態なので、手元で 動かせないとどうにもできなそうです。もし、そういう状態なら公 開できるSQLで再現させてもらえないでしょうか? -- 須藤 功平 <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