これは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

参考