[groonga-dev,03894] Re: PGRNファイルが開けない?

Back to archive index

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




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