これはPGroonga 2.X and 3.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。
pgroonga_standby_maintainer.max_parallel_wal_appliers_per_db
パラメーター3.1.2で追加。
pgroonga_standby_maintainer.max_parallel_wal_appliers_per_db
パラメーターはpgroonga_standby_maintainer
モジュールによるpgroonga_wal_apply()
関数実行の並列度を制御します。
この値が1以上の場合、各PGroongaインデックスに対するpgroonga_wal_apply()
は新しいバックグランドワーカープロセスが実行します。並列にpgroonga_wal_apply()
を実行するために十分なリソースがある場合は、6のように大きな値を指定することでトータルのWAL適用時間を削減できます。
このパラメーターに大きな値を指定した場合、max_worker_processes
も増やさなければいけないことに注意してください。大きな値を指定した場合、同時にたくさんのワーカープロセスが必要になるかもしれません。
このパラメーターはデータベース単位の並列度を制御することに注意してください。もし、PGroongaを使っているデータベースが2つあり、このパラメーターに6を指定した場合、pgroonga_wal_apply()
用に同時に12個のバックグランドワーカープロセスが起動するかもしれません。
デフォルト値は0です。これはpgroonga_wal_apply()
はシーケンシャルに実行するという意味になります。追加のバックグランドワーカープロセスは使われません。
postgresql.conf
の場合:
pgroonga_standby_maintainer.max_parallel_wal_appliers_per_db = max
max
は0あるいは正の整数です。並列度を制御します。
デフォルトは0です。
以下はデータベースごとに並列pgroonga_wal_apply()
のために最大で6ワーカーを使う例です。
pgroonga_standby_maintainer.max_parallel_wal_appliers_per_db = 6