PGD settings

目次

PGD settings#

PGD固有の構成設定を設定できます。特に断りのない限り、値はいつでも設定できます。

競合処理#

bdr.default_conflict_detection#

新しく作成されるテーブルのデフォルトの競合検出方法を設定します。 bdr.alter_table_conflict_detection() と同じ値を受け入れます。

グローバルシーケンスパラメーター#

bdr.default_sequence_kind#

デフォルトの Sequences を設定します。

デフォルトはdistributed で、これは、 snowflakeid がint8 シーケンスつまりbigserial に使用され、int4 つまりserial およびint2 シーケンスのgalloc シーケンスに使用されることを意味します。

DDL処理#

bdr.default_replica_identity#

新しく作成されるテーブルにREPLICA IDENTITY のデフォルト値を設定します。 REPLICA IDENTITY は、更新または削除された行を識別するためにログ先行書き込みに書き込まれる情報を定義します。

受け入れられる値は次のとおりです。

Value

Description

default

主キーの列の古い値がある場合は、それを記録しますこれはデフォルトのPostgreSQL動作です。

full

行内のすべての列の古い値を記録します。

nothing

古い行に関する情報は記録しません。

auto

テーブルはREPLICA IDENTITY FULLで作成されます。これはデフォルトのPGD動作です。

詳細は、 PostgreSQL documentation を参照してください。

PGDは、 PRIMARY KEY またはUNIQUE 制約のないテーブルでUPDATE およびDELETE オペレーションをレプリケートできません。例外は、テーブルのレプリカIDがテーブル固有の構成またはbdr.default_replica_identity によるFULL の場合です。

bdr.default_replica_identity がdefault で、テーブル定義にUNIQUE 制約が含まれている場合、REPLICA IDENTITY として自動的に選択されません。 ALTER TABLE ... REPLICA IDENTITY ... を使用してREPLICA IDENTITY を明示的に設定する必要があります。

テーブルのレプリカIDをfull に設定すると、テーブルのワイヤに書き込まれるWALの量とレプリケートされるデータの量が増加します。

ALTER SYSTEM SET bdr.default_replica_identity="default";

デフォルトの引用符なしは、構成ファイルから設定の削除をトリガーする ALTER SYSTEM コマンドの特別な値であるため、引用符を含める必要があります。設定が削除されると、システムはPGDのデフォルト設定であるauto を使用します。

ノード間でDDLを自動的にレプリケートしますデフォルトはon です。

このパラメーターは、 bdr_superuserまたはsuperuserロールによってのみ設定できます。

DDLを実行するか、 bdr.ddl_replication = off を使用してPGD管理機能を呼び出すと、管理者が介入できるまでレプリケーションが停止する状況が発生する場合があります。詳細は、 Running DDL safely を参照してください。

bdr.ddl_replication がoff に設定されている場合は常に、 LOG レベルのログメッセージがPostgreSQLサーバーログに出力されます。さらに、キャプチャされたDDLコマンドまたはPGDレプリケーションファンクションのレプリケーションがこの設定によりスキップされるたびに、 WARNING-level メッセージが書き込まれます。

bdr.role_replication#

ノード全体でROLEコマンドを自動的にレプリケートしますデフォルトはon です。スーパーユーザーのみがこのパラメーターを設定できます。この設定は、 bdr.ddl_replication もオンになっている場合にのみ機能します。

外部方法を使用せずにこのパラメーターをオフにして、すべてのノードでロールが同期していることを確認すると、管理者が介入するまでレプリケートDDLがレプリケーションを中断する場合があります。

DDL and role manipulation statements を参照してください

詳細については。

bdr.ddl_locking#

DDLのグローバルロックの操作モードを構成します。

このパラメーターは、 bdr_superuserまたはsuperuserロールによってのみ設定できます。

考えられるオプションは次のとおりです。

Value

Description

all

すべてのDDL操作にグローバルロックを使用します。

leader

リーダーベースのグローバルDMLロックを使用します。

auto

可能であれば`leader`を選択し、それ以外の場合は`all`を選択します。デフォルト

dml

リレーションのグローバルDMLロックを取得することにより書き込みを防止する必要があるDDL操作にのみグローバルロックを使用します。

off

DDL操作にはグローバルロックを使用しないでください。

デフォルトはauto です。

bdr.ddl_locking がoff に設定されている場合は常に、 LOG レベルのログメッセージがPostgreSQLサーバーログに出力されます。さらに、この設定によりグローバルロックステップがスキップされるたびに、 WARNING メッセージが書き込まれます。一部のステートメントは、2つのWARNING メッセージを生成します。1つはDMLロックをスキップし、もう1つはDDLロックをスキップします。

下位互換性のため、bdr.ddl_locking はエイリアスをサポートしています。 on およびtrue は、all のエイリアスです。 false は、off のエイリアスです。

グローバルロック も参照してください。

bdr.truncate_locking#

TRUNCATEコマンドのロック動作を設定しますデフォルトはon /true です。 on /true の場合、 TRUNCATEはbdr.ddl_locking 設定に従います。

グローバルロック#

DDLロックは、 bdr.ddl_locking によって制御されます。その他のグローバルロック設定には次のものが含まれます。

bdr.global_lock_max_locks#

ノードで保持できるグローバルロックの最大数を設定しますデフォルトは1000です。 Postgresサーバー起動時にのみ設定できます。

bdr.global_lock_timeout#

グローバルロックの待機の最大許可時間を設定しますデフォルトは1分です。値0はこのタイムアウトを無効にします。

bdr.global_lock_statement_timeout#

グローバルロックを保持するステートメントの最大許可期間を設定しますデフォルトは60分です。値0はこのタイムアウトを無効にします。

bdr.global_lock_idle_timeout#

グローバルロックを保持するトランザクションのアイドル時間の最大許可期間を設定しますデフォルトは10分です。値0はこのタイムアウトを無効にします。

bdr.lock_table_locking#

LOCK TABLEステートメントのロック動作を設定しますデフォルトはオンです。 LOCK TABLEステートメントは有効にすると、クラスターでグローバルDMLロックを取得し、他のロックステートメントをブロックします。

Value

Description

on

すべてのテーブルロックにグローバルロックを使用します。デフォルト

off

テーブルロックにグローバルロックを使用しないでください。

bdr.predictive_checks#

予測チェックのログレベルを設定します現在グローバルロックによってのみ使用されます。 DEBUG 、LOG 、WARNING デフォルト、またはERROR です。予測チェックは、特定の操作を実行するときに予想されるクラスター状態の早期検証です。タイムアウトを待機するのではなく、早期フェイルのこれらの操作に使用できます。グローバルロック用語では、 PGDは、接続されている十分なノードがあり、グローバルロックに必要なクォーラムを取得するための妥当な遅延制限内であることをチェックします。

ノード管理#

bdr.replay_progress_frequency#

レプリケーション位置情報をクラスターの残りの部分に送信する間隔を設定しますデフォルトは1分です。

汎用レプリケーション#

bdr.writers_per_subscription#

サブスクリプションごとのライターのデフォルト数を設定します。 PGDでは、グループのbdr.alter_node_group_option を使用してこれを変更することもできます。

bdr.max_writers_per_subscription#

サブスクリプションごとのライターの最大数。 bdr.writers_per_subscription 設定の上限を設定します。

PGD 6.3.0以降、実行時にリロード可能PGC_SIGHUP ALTER SYSTEM 、続いてpg_reload_conf() で値を変更します —ノードを再起動する必要はありません。値は初期化時に各ライタグループによってキャプチャされるため、進行中のサブスクリプションは開始された値で継続されます。新しい制限は、次のライターグループの開始サブスクリプション無効/有効または次の再接続サイクルに有効になります。

bdr.xact_replication#

現在のトランザクションをレプリケートしますデフォルトはon です。

これをオフにすると、トランザクション全体がローカルのみになります。つまり、トランザクションは、 PGDによる論理デコードおよび論理デコードのその他のすべてのダウンストリームターゲットから可視されません。データは、ロジカルスタンバイノードを含む他のノードに転送されません。

このパラメーターは、 bdr_superuserまたはsuperuserロールによってのみ設定できます。

このパラメーターは、 bdr.permit_unsafe_commands = on を除き SET LOCAL コマンドを使用して現在のトランザクション内でのみ設定できます。

注釈

トランザクションレプリケーションを無効にしてもWALは生成されますが、これらの変更はオリジンでフィルタリングされます。

警告

bdr.xact_replication をオフにすると、ノード間でデータの不一貫性が発生します。ノード間のデータの相違からリカバリーするため、またはレプリケーションを続行するために単一ノードの変更が必要なレプリケーション状況にのみ使用します。自分の責任で使用してください。

bdr.permit_unsafe_commands#

一般的な使用には安全でないと考えられるコマンドの安全性チェックをオーバーライドします。

bdr_superuserまたはPostgreSQLスーパーユーザーが必要です。

警告

通常安全だと考えられていないコマンドは、一貫性のない結果を生成するか、レプリケーションを完全に中断する可能性があります。自分の責任で使用してください。

bdr.batch_inserts#

1つのテーブルの挿入のバッチ処理をオンにする単一のトランザクションでの1つのテーブルへの連続した挿入の数。

この設定では、大規模なデータのレプリケーションを、挿入のセットとしてではなく、内部のCOPYとしてロードできます。これは、ノード参加中の初期データのコピー方法でもあります。

bdr.maximum_lock_skew#

bdr.maximum_clock_skew_action をトリガーする前に、受信トランザクションコミットタイムスタンプとサブスクライバーの現在時間の最大差を指定します。

現在再生されているトランザクションのタイムスタンプが、サブスクライバーの現在時刻と比較して将来的であるかどうかを確認します。その場合、その差がbdr.maximum_clock_skew より大きい場合、bdr.maximum_clock_skew_action 設定で指定されたアクションを実行します。

デフォルトは-1 で、これはクロックスキューを無視するチェックがオフになることを意味します。すべてのサーバーの時計が同期している場合、0を設定するのが有効です。トランザクションが再生されているという事実は、過去にコミットされたことを意味します。

bdr.maximum_lock_skew_action#

bdr.maximum_clock_skew より高いクロックスキューが検出された場合に実行するアクションを指定します。

この設定には2つの値があります。

Value

Description

WARN

このファクトに関する警告をログに記録します。警告は、サーバーログの氾濫を防ぐために、最大1分に1回ログに記録されます。

WAIT

現在のローカルタイムスタンプがリモートコミットタイムスタンプから`bdr.maximum_clock_skew`を引いたものより古くなくなるまで待機します。

bdr.accept_connections#

PGDへの接続を有効または無効にしますデフォルトはon です。

bdr_superuserまたはPostgreSQLスーパーユーザーが必要です。

bdr.writer_input_queue_size#

レシーバーがライタプロセスにデータを送信するために使用する共有メモリキューのサイズを指定します。ライタプロセスが停止しているか、進行が遅い場合、キューがいっぱいになり、受信側プロセスも停止する可能性があります。したがって、このキューに十分な共有メモリを提供することが重要です。デフォルトは1MBで、最大許可サイズは1GBです。 GUCの設定には任意のストレージサイズ指定子を使用できますが、デフォルトはKBです。

bdr.writer_output_queue_size#

レシーバーがライタプロセスからデータを受信するために使用する共有メモリキューのサイズを指定します。ライタは大量のデータを送信することは想定されていないため、比較的小さいサイズのキューで十分です。デフォルトは32KBで、最大許可サイズは1MBです。 GUCの設定には任意のストレージサイズ指定子を使用できますが、デフォルトはKBです。

bdr.min_worker_backoff_migrate#

特定のワーカーがbdr.min_worker_backoff_delay ミリ秒ごとよりも頻繁に再起動されないようにすることにより、PGDバックグラウンドワーカー起動のレート制限が可能です。エラーが繰り返されると、バックオフが指数関数的に増加し、最大bdr.max_worker_backoff_delay までジッターが追加されます。

時間単位のサフィックスがサポートされています。

注釈

この設定は現在レシーバーワーカーにのみ影響します。つまり、主にエラーまたは接続障害が発生したときにサブスクリプションが再接続を試行する速度に影響を与えます。

bdr.min_worker_backoff_delay のデフォルトは1秒です。 bdr.max_worker_backoff_delay の場合、1分です。

バックオフ遅延設定が変更され、PostgreSQL構成がリロードされると、現在のすべてのバックオフがリセットを待機します。さらに、 bdr.worker_task_reset_backoff_all() ファンクションは、管理者がすべてのバックオフインターバルを強制的にすぐに有効期限が切れるように提供されています。

共有メモリ内の追跡テーブルは、各種類のワーカーの最終起動時刻を記憶するために維持されます。この追跡テーブルは永続的ではありません。これは、汚れたバックエンド終了後のクラッシュリカバリー中のソフトリスタートを含む、PostgreSQLの再起動によってクリアされます。

ビュー bdr.worker_tasks を使用してこの状態を検査できるため、管理者は、現在有効になっているバックオフレート制限を確認できます。

レート制限の目的で、ワーカーはタスクによって分類されます。このキーは、ワーカーロール、データベースOID、サブスクリプションID、サブスクリプションライタID、拡張ライブラリ名とファンクション名、拡張機能提供のワーカー名、および同期ライターのリモートリレーションIDで構成されています。 NULL は、特定の分類子が適用されない場合、たとえば、マネージャーワーカーがサブスクリプションIDがなく、レシーバーがライタIDがない場合に使用されます。

CRDT#

bdr.crdt_raw_value#

CRDTデータ型を使用した列レベルの競合の処理 の出力フォーマットを設定します。

デフォルト出力この設定がoff の場合、ベースCRDTタイプの現在値のみを結果ことができます、たとえば、crdt_pncounter のbigint。 on に設定されている場合、戻り値はCRDT値の完全な表現を表します。これには、たとえば、マルチプルのノードからの状態を含めることができます。

ラージオブジェクト#

bdr.override_large_objects#

on に設定すると、PostgreSQLの built-in large object functions lo_create 、lo_open 、lo_read などを同等のbdr.lo_* に透過的にリダイレクトするため、既存のアプリケーションはコードを変更せずにレプリケートされたラージオブジェクトを使用します。

リダイレクトはSQLレベルの呼び出しに適用されます。 libpqベースのクライアントとドライバーは、 SQLをバイパスして、プロトコルレベルでラージオブジェクト呼び出しも発行します。これらもリダイレクトするには、 Postgresに直接接続するのではなく、 Connection Manager Authentication 読み取り/書き込みポートデフォルト6432に接続します。

デフォルトはoff です。詳細については、 Replicated large objects を参照してください。

コミットスコープ#

bdr.commit_scope#

現在またはデフォルトの コミットスコープへの移行 を設定しますデフォルトは空の文字列です。

Commit At Most Once#

bdr.camo_local_mode_deploy#

CAMOの非同期モードで適用され、 CAMOパートナーがトランザクションを確認する必要があるときに通常発生するオーバーヘッドをエミュレートするコミット遅延デフォルトは5ミリ秒です。この機能を無効にするには、 0 に設定します。

bdr.camo_enable_client_warnings#

CAMOプロパティを保証できないデータベースでアクティビティが実行された場合、警告を発しますデフォルトが有効になっています。十分な情報のあるユーザーは、この設定を無効にして、ログに記録される警告の量を減らすことができます。

トランザクションストリーミング#

bdr.default_streaming_mode#

サブスクライバノードによるトランザクションストリーミングを制御します。使用可能な値はoff 、writer 、file 、およびauto です。デフォルトauto 。 off に設定されている場合、サブスクライバーはトランザクションストリーミングを要求しません。他の値に設定されている場合、サブスクライバーはトランザクションストリーミングを要求し、パブリッシャーはそれをサポートしている場合、およびグループレベルで構成されている場合にそれを提供します。詳細については、 トランザクションストリーミングでの使用 を参照してください。

遅延制御#

bdr.lag_control_max_commit_deploy#

ミリ秒単位での許容できる最大許容コミット後遅延。

bdr.lag_control_max_lag_size#

許容できる最大許容遅延サイズキロバイト単位。

bdr.lag_control_max_lag_time#

ミリ秒単位の許容できる最大許容遅延時間。

bdr.lag_control_min_conforming_nodes#

許容可能な遅延測定値を下回るように必要なノードの最小数。

bdr.lag_control_commit_deploy_adjust#

最大コミット遅延時間の一部として測定されるコミット遅延のマイクロ調整。デフォルト値の0.01%では、最大コミット遅延に到達するまでに100ネットインクリメントが必要です。

bdr.lag_control_sample_interval#

ミリ秒単位の遅延サンプルとコミット遅延マイクロ調整間の最小時間。

bdr.lag_control_commit_deploy_start#

コミット遅延インクリメントが適用され始める遅延しきい値。許容可能な遅延尺度の割合で表されます。デフォルト値の1.0%では、許容可能な遅延測定値に違反するまでコミット遅延のインクリメントは開始されません。

より小さい分数を設定することにより、許容可能な遅延尺度に漸近するように早期に「遅延曲線を曲げる」ことにより、違反を防止できる場合があります。

モニタリングとロギング#

bdr.debug_level#

PGDがデバッグメッセージを書き込むために使用するログレベルを定義します。デフォルト値はdebug2 です。詳細なPGDデバッグ出力を表示する場合は、 bdr.debug_level = 'log' を設定します。

bdr.trace_level#

bdr.debug_level と同様に、 PGDトレースメッセージに使用するログレベルを定義します。 EDB Postgres分散クラスターのすべてのノードでトレースを有効にすると、EDBサポートが問題を診断するのに役立つ場合があります。このパラメーターは、Postgresサーバーの起動時にのみ設定できます。

警告

bdr.debug_level または`bdr.trace_level` を値>= log_min_messages に設定すると、非常に大量のログ出力が生成される場合があります。ディスク領域の枯渇を防ぐためにログのフィルタリング、アーカイブ、およびローテーションの計画が策定されていない限り、運用環境では長期的に有効にしないでください。

トラックは、 bdr.stat_subscription デフォルトはon を使用した各サブスクリプションの統計を適用します。

bdr.track_relation_apply#

トラックは、 bdr.stat_relation デフォルトはoff とのリレーションごとに統計を適用します。

bdr.track_apply_lock_timing#

bdr.stat_relation デフォルトはoff とのリレーションの統計を追跡するときにロックタイミングを追跡します。

bdr.monitor_enabled#

Using the PGD Monitor HTTPサーバーを有効にし、Web UI、REST API、およびPrometheusエンドポイントデフォルトはoff を提供します。ノードグループオプションではなく、ノードごとのパラメーター。 PGDモニタにサービスを提供する各ノードでこれを設定し、構成をリロードします。再起動は必要ありません。

bdr.monitor_prometheus_pg_metrics#

Using Prometheus デフォルトはon に、Postgres統計ファミリー、postgres_exporter 同等品が含まれます。ノードごとのパラメーター。 postgres_exporter が既に実行されており、重複したシリーズが必要ない場合、ノードでoff に設定し、構成をリロードします。再起動は必要ありません。

bdr.monitor_ssl_cert_file#

Using the PGD Monitor のHTTPサーバーのSSL証明書、Postgresのssl_cert_file をオーバーライドしますデフォルトは未設定で、Postgresのssl_cert_file にフォールバックします。ノードごとのパラメーター。各ノードで個別に設定し、構成をリロードします。

bdr.monitor_ssl_key_file#

Using the PGD Monitor のHTTPサーバーのSSLプライベートキー、Postgresのssl_key_file をオーバーライドしますデフォルトは未設定で、Postgresのssl_key_file にフォールバックします。ノードごとのパラメーター。各ノードで個別に設定し、構成をリロードします。

bdr.monitor_ssl_ca_file#

Using the PGD Monitor のHTTPサーバーのSSL CA証明書、Postgresのssl_ca_file をオーバーライドしますデフォルトは未設定で、Postgresのssl_ca_file にフォールバックします。ノードごとのパラメーター。各ノードで個別に設定し、構成をリロードします。

デコードワーカー#

bdr.enable_wal_decoder#

Decoding worker デフォルトはfalseを使用して、単一ノードで論理変更レコードLCR送信を有効にします。 trueに設定すると、デコードワーカープロセスが開始され、WAL送信側は生成したLCRを送信します。 falseに設定し直すと、LCRを使用するWAL送信者が再起動され、WALを直接使用します。

注釈

PGDグループ内のすべてのノードでこの設定を有効にし、グループで`enable_wal_decoder` オプションをtrueに設定する必要があります。

別のノードをサブスクライブする場合、この設定により、ノードはサブスクリプションの論理変更レコードLCRの使用を要求できますデフォルトはfalseです。下流ノードでこの設定がtrueの場合、ノードは上流ノードに送信するときにLCRを使用することを要求します。ノードでbdr.enable_wal_decoder をtrueに設定する場合、この設定もtrueに設定します。

注釈

PGDグループ内のすべてのノードでこの設定を有効にし、グループで`enable_wal_decoder` オプションをtrueに設定する必要があります。

論理変更レコードLCRファイルのクリーンアップ間隔デフォルト3分。 Decoding worker が有効になっている場合、デコードワーカーはLCRファイルをバッファとして保存します。これらのファイルは定期的にクリーンアップされ、この設定は2つの連続するクリーンアップ間の間隔を制御します。ゼロに設定すると、クリーンアップが無効になります。

接続設定#

以下は、すべてのクロスノードlibpq 接続に影響を与える接続設定のセットです。デフォルトはかなり保守的な値に設定されており、ほとんどの運用ニーズをカバーします。すべての変数にはSIGHUP コンテキストがあります。これは、リロード時に変更が適用されることを意味します。

bdr.global_connection_timeout#

接続中に待機する最大時間秒単位でデフォルトは15秒です。 10進の整数、たとえば、10として書き込みます。ゼロ、負の数、または指定なしは、無期限に待機することを意味します。最小許可タイムアウトは2秒であるため、値1は2:raw-latex:として解釈されます。

bdr.global_keepalives#

TCPキープアライブを使用するかどうかを制御しますデフォルトは1、オンを意味します。キープアライブが不要な場合は、これを0、つまりオフに変更できます。このパラメーターは、Unixドメインソケットによって作成された接続では無視されます。

bdr.global_keepalives_idle#

TCPがキープアライブメッセージをサーバーに送信するまでの非アクティブな秒数を制御しますデフォルトは1秒です。値0は、システムのデフォルトを使用します。このパラメータは、Unixドメインソケットによって作成された接続、またはキープアライブが無効になっている場合に無視されます。 TCP_KEEPIDLE または同等のソケットオプションが使用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

bdr.global_keepalives_interval#

サーバーによって確認されなかったTCPキープアライブメッセージを再送信する秒数を制御しますデフォルトは2秒です。値0は、システムのデフォルトを使用します。このパラメータは、Unixドメインソケットによって作成された接続、またはキープアライブが無効になっている場合に無視されます。 TCP_KEEPINTVL または同等のソケットオプションが使用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

bdr.global_keepalives_count#

サーバーへのクライアントの接続がデッドと見なされる前に、失われる可能性のあるTCPキープアライブの数を制御しますデフォルトは3です。値0は、システムのデフォルトを使用します。このパラメータは、Unixドメインソケットによって作成された接続、またはキープアライブが無効になっている場合に無視されます。 TCP_KEEPCNT または同等のソケットオプションが使用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

bdr.global_tcp_user_timeout#

接続が強制的に閉じられるまでに、送信されたデータが未確認のままでいられるミリ秒数を制御しますデフォルトは5000、つまり5秒です。値0は、システムのデフォルトを使用します。このパラメーターは、Unixドメインソケットによって作成された接続では無視されます。 TCP_USER_TIMEOUT が利用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

接続マネージャー#

bdr.conn_mgr_server_max_lifetime#

接続マネージャーがプールされたバックエンドサーバー接続を閉じるまで開いたままにする秒単位の最大時間デフォルトは3600、つまり1時間です。接続マネージャーは、この値よりも長く開いていた未使用のプールサーバー接続を閉じます。値0は制限を無効にします。このパラメーターは、bdr_superuser またはスーパーユーザーロールによってのみ設定できます。

bdr.conn_mgr_worker_threads#

Connection Managerのマルチスレッドエンジンデフォルトは-1 のワーカースレッドの数。 -1 の値は、ノードで使用可能なCPUコア数を4で割ったものとして、スレッドカウントを自動的にサイズ設定します。2〜8の間でクランプされます。コア数が決定できない場合、2にフォールバックします。有効な値は-1 〜 16 .変更は、次回の接続マネージャーの再起動時に有効になります。このパラメーターは、bdr_superuser またはスーパーユーザーロールによってのみ設定できます。

トポロジ設定#

bdr.force_full_mesh#

フルメッシュトポロジを強制しますデフォルトはon です。 off に設定されている場合、PGDはサブスクライバ専用グループに最適化されたトポロジを使用しようとします。この設定は、最適化されたトポロジの要件が満たされた場合にのみ有効です。詳細については、 Optimizing subscriber-only groups を参照してください。

アナリティクス設定#

bdr.prefer_analytics_engine#

データのローカルコピーがPostgresヒープに存在する場合でも、システムがクエリをPostgres Analytics AcceleratorPGAAエンジンSeafowlまたはSparkにルーティングするかどうかを決定します。デフォルトはfalse です。

内部設定 - Raftタイムアウト#

bdr.raft_global_election_timeout#

ネットワーク障害を説明するために、Raftコンセンサスプロトコルは選択と要求のタイムアウトを実装します。この値は、要求がグローバルトップレベルグループに送信されるときに使用されます。デフォルトは6秒6sです。

bdr.raft_group_election_timeout#

ネットワーク障害を説明するために、Raftコンセンサスプロトコルは選択と要求のタイムアウトを実装します。この値は、要求がサブグループに送信されるときに使用されます。デフォルトは3秒3sです。

bdr.raft_response_timeout#

レスポンスの場合、 bdr.raft_global_election_timeout および bdr.raft_group_election_timeout の設定が必要に応じて使用されます。この変数を設定することにより、この動作をオーバーライドできます。 bdr.raft_response_timeout の設定は、いずれの選択タイムアウト値よりも小さい必要があります。オーバーライドを無効にするには、この変数を-1に設定します。デフォルトは-1です。

内部設定 - その他のRaft値#

bdr.raft_keep_min_entries#

ログ圧縮を行うときにRaftログに保持するエントリの最小数デフォルトは1000 、PGD 5.3以前は100 です。 0 の値は、ログ圧縮を無効にします。このパラメーターは、Postgresサーバーの起動時にのみ設定できます。

警告

ログ圧縮が無効になっている場合、ログのサイズは永久に増加します。

ステートマシンを前進させるために、Raftは内部ログにエントリを追加します。通常オペレーションでは、追加には数ミリ秒しかかかりません。これにより、その追加アクションの期間に上限しきい値が設定され、それを超えると INFO メッセージがログに記録されます。これは問題を示している可能性があります。デフォルトは3000ミリ秒です。

bdr.raft_log_min_message_duration#

コンセンサス要求をログに記録する場合。 PGDコンセンサス要求の往復時間を測定し、時間がこのパラメーターデフォルト5000ミリ秒を超えた場合、INFO メッセージをログに記録します。

bdr.raft_group_max_connections#

PostgresサーバーのすべてのPGDグループの最大接続数デフォルトは100接続です。これらの接続は、グループのノード間でPGDコンセンサス要求を伝送します。このパラメーターは、Postgresサーバーの起動時にのみ設定できます。

bdr.raft_vacuum_interval#

Raftカタログテーブルのルーチンのバキューム操作の間隔。最小値は60s 、最大値は24h であり、bdr.raft_vacuum_full_interval より低い値に設定する必要があります。この設定は無効にすることはできません。

bdr.raft_vacuum_full_interval#

Raftカタログテーブルのバキュームフル操作の間隔。最小値は1h であり、bdr.raft_vacuum_interval より大きい値に設定する必要があります。 -1 は、この設定を完全に無効にします。

内部設定 - その他の値#

bdr.backwards_compatibility#

bdr.bdr_version_num 、30618 などで使用されるのと同じ数値形式で、下位互換性のあるバージョンを指定します。デフォルトは現在のPGDバージョンです。一般に不要な効果がある場合でも、以前のPGDバージョンの正確な動作を有効にします。これはリリースごとに異なるため、値が現在のバージョンと異なる場合を除き、構成ファイルで明示的に使用しないことをお勧めします。

bdr.track_replication_estimates#

ピアノードの適用レートとキャッチアップ間隔の観点からレプリケーション推定を追跡します。 CAMOのようなプロトコルは、この情報を使用して、ピアノードの準備状況を推定できます。このパラメーターはデフォルトで有効になっています。

bdr.lag_tracker_apply_rate_weight#

PGDは、ローカルノードからWALを適用するという点でピアノードがどれだけ遅れているかを監視し、遅延追跡の適用レートの移動平均を計算します。このパラメーターは、この移動平均計算で新しい計算値がどの程度寄与するかを指定します。デフォルトは0.1です。

bdr.enable_auto_sync_reconcile#

PGDは、有効にすると、ノードがダウンしたときに最も先のノードからのデータを自動的に同期し、障害が発生したオリジンノードが残した未解決の準備済みトランザクションを自動的にリコンサイルします。デフォルト6.0.1からがオンになっています。

bdr.allow_bdr_schema_changes#

bdr スキーマのデータベースオブジェクトの手動変更を許可します。デフォルトオフ。このパラメーターは、明示的に指示された場合にのみ変更します。

bdr.cds_memory_cache_size#

Quorum CommitおよびCAMOの場合、コミット決定をキャッシュするために予約する共有メモリPGDのターゲットサイズのバイト単位。有効にするには再起動が必要です。

bdr.commit_決断_min_age#

Quorum CommitおよびCAMOの場合、トランザクションがコミットまたは中止された後、PGDがコミット決定を保持する期間。デフォルトは15分です。

bdr.prev_leader_wait_timeout#

Quorum CommitおよびCAMOの場合、Quorum Commitトランザクションを否決する前に以前の書き込みリーダーの変更を待機する最大期間。 0 の値はタイムアウトをオフにします。これは、コミットスコープのABORT ON タイムアウトより十分に小さくしてください。待機はオリジンが待機しているトランザクション内で発生するため、値が長くなると、このノードがトランザクションをオープンしたままにしているときに、オリジンが最初にアボートすることが保証されます。デフォルトは5秒です。