Kouhei Sutou
kou****@clear*****
2015年 8月 12日 (水) 12:26:37 JST
須藤です。 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というフックの中で使われていないテーブルを消 す処理を実行しています。 -- 須藤 功平 <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/