PGroonga WAL ストリーミングレプリケーション

https://pgroonga.github.io/ja/reference/streaming-replication.html

レプリケーション構成時にスタンバイサーバーでPGroongaのWALを自動で適用する機能をサポートしました。
今までは、PGroongaのWALは手動で適用しない限り溜まっていく一方でしたが、今回のリリースから スタンバイサーバーで定期的に自動でWALを適用する機能をサポートしました。
この機能はデフォルトでは無効となっているので、使用するには設定を有効にする必要があります。 設定を有効にする方法については、以下のリンクを参照してください。

https://groonga.org/ja/blog/2021/11/09/pgroonga-2.3.4.html

pgroonga.max_wal_sizeパラメーターはPGroongaのWALの最大サイズを制御します。

pgroonga_max_wal_sizeパラメーターはpgroonga_wal_applierモジュールと一緒に使います。プライマリーサーバーでpgroonga_max_wal_sizeパラメーターを指定して、スタンバイサーバーでpgroonga_wal_applierモジュールを有効にします。
https://pgroonga.github.io/ja/reference/parameters/max-wal-size.html

pgroonga_wal_applier → pgroonga-standby-maintainer

pgroonga_standby_maintainer

pgroonga_standby_maintainer モジュールを使うことで、スタンバイのデータベースで pgroonga_wal_apply() 関数 と pgroonga_vacuum() 関数 を自動的に実行できます。

https://pgroonga.github.io/ja/reference/modules/pgroonga-standby-maintainer.html

https://pgroonga.github.io/ja/reference/functions/pgroonga-vacuum.html

?postgres起動 → pgroonga: standby-maintainer: maintaining が実行されるとPostgresのレプリケーション処理はブロックされる(待たされる)?

PGroonga 2.3.4 以前 PGroongaのWALは定期的なメンテナンスが必要

  • プライマリー 定期的なREINDEX/WAL削除
  • スタンバイ WAL適用

PGroonga運用技法 ~PGroongaのWALを放置していませんか?~ - Horimoto Yasuhiro - Rabbit Slide Show 2020.11.13

ただ、ストリーミングレプリケーション環境のスタンバイ側では、マスタからレプリケーションされたPGroongaのWALファイルは『未適用』状態のままとなります。
PGroongaインデックスにアクセスする SELECT が実行された際に、初めてPGroongaのWALファイルの適用処理が実行されます。
このとき、PGroongaのWALファイルの適用処理が完了するまで、SELECTの結果が返されないことに注意する必要があります

PGroongaのオブジェクト紹介 | 株式会社インサイト 2021.05.07

とても参考になる

PGroongaオブジェクトのメンテナンス方法 | 株式会社インサイト 2021.07.08