Hiroaki Nakamura
hnaka****@gmail*****
2015年 8月 12日 (水) 12:34:23 JST
2015年8月12日 12:26 Kouhei Sutou <kou****@clear*****>: > 須藤です。 > > In <CAN-DUMQSpsbiUt-YoEXfETfuaM_f4bNd****@mail*****> > "[groonga-dev,03403] Re: PostgreSQLとgroongaのレコードの紐付けにctidを使うのは大丈夫なのでしょうか?" on Tue, 11 Aug 2015 23:34:02 +0900, > Hiroaki Nakamura <hnaka****@gmail*****> wrote: > >> 紐付けがとれているという点では問題ないのですが、別の問題として >> Groonga側に古いテーブルがどんどん残ってしまうという問題があるのかなと思っています。 > > そう思いますよね。 > 実は、そうならないようにVACUUMされたタイミングで古いテーブル > を削除する機能を入れてあるので、すぐには削除されませんが、い > ずれ削除されるようになっています。 なるほど、ちゃんと対応されていたんですね。 ありがとうございます! >> "PostgreSQL: pg_am - PostgreSQL 雑記 - postgresqlグループ" >> https://postgresql.g.hatena.ne.jp/pgsql/20090719/1248008626 >> によるとそもそもpg_amにDROP INDEXのときのフックが無いという仕様上の問題が >> あるみたいなんですが、運用を考えるとゴミとなった古いテーブルを >> 消すような仕組みを用意して定期的に実行するとかの対応が必要かと >> 思います。 > > DROP INDEXのときにすぐに消すと、トランザクション内でDROP > INDEXしたときに破綻するのでやっちゃダメなんです。 おお、そうなんですね。 > PGroongaではVACUUMされたときに呼ばれる「ことがある」 > amvacuumcleanupというフックの中で使われていないテーブルを消 > す処理を実行しています。 なるほど、この仕組みでいずれは削除されるんですね。 ディスクの空きが無くなりそうなときとか、今すぐ消したいことも あるかと思うのですが、手動で消す仕組みもあるのでしょうか? -- 中村 弘輝 )Hiroaki Nakamura)