Internal system functions¶
以下にリストされているのは、内部システム関数です。多くはさまざまなビューの作成に使用され、関数を直接使用せずに、関数が提供するビューを使用することをお勧めします。
一般的な内部機能¶
bdr.decode_message_response_payload¶
コンセンサスペイロードをより人間が読める出力にデコードするPGDメッセージペイロード関数。主にbdr.global_consensus_journal_details
デバッグビューによって使用されます。
bdr.decode_message_payload¶
コンセンサスペイロードをより人間が読める出力にデコードするPGDメッセージペイロード関数。主にbdr.global_consensus_journal_details
デバッグビューによって使用されます。
bdr.get_global_locks¶
この機能は、ローカルノードで保持されているグローバルロックに関する情報を表示します。
bdr.global_locks
ビューを実装して、ロックのより詳細な概要を提供するために使用されます。
bdr.get_slot_flush_timestamp¶
指定されたレプリケーションスロットの最後のフラッシュ位置確認のタイムスタンプを取得します。
bdr.node_slots ビューを実装するために内部的に使用されます。
bdr.internal_alter_sequence_set_kind¶
さまざまなファンクションコールのレプリケーションのために内部的に使用されるPGD内部ファンクション。
PGDの現在のバージョンでは使用されなくなりました。ローリングアップグレード中の下位互換性のためにのみ存在します。
bdr.internal_replication_set_add_table¶
さまざまなファンクションコールのレプリケーションのために内部的に使用されるPGD内部ファンクション。
PGDの現在のバージョンでは使用されなくなりました。ローリングアップグレード中の下位互換性のためにのみ存在します。
bdr.internal_replication_set_remove_table¶
さまざまなファンクションコールのレプリケーションのために内部的に使用されるPGD内部ファンクション。
PGDの現在のバージョンでは使用されなくなりました。ローリングアップグレード中の下位互換性のためにのみ存在します。
bdr.internal_submit_join_request¶
新しいノードに参加するためのコンセンサスリクエストを送信します。
PGDグループの再構成内部メカニズムによって必要とされます。
bdr.isolation_test_session_is_blocked¶
グローバルロック上のブロックのチェックが追加されて、元のpg_isolation_test_session_is_blocked
を拡張(および実際に呼び出し)するヘルパー関数。
分離/並行性テストに使用されます。
bdr.local_node_info¶
この機能は、PGDグループ再構成の内部メカニズムが必要とするローカルノードの情報を表示します。
ビュー bdr.local_node_summary
は、ユーザーの消費に役立つ同様の情報を提供します。
bdr.msgb_connect¶
コンセンサスプロトコルが使用する、別のノードのコネクションプーラーに接続するための機能。
bdr.msgb_deliver_message¶
コンセンサスプロトコルによって使用される、別のノードの接続プーラーにメッセージを送信するための関数。
bdr.peer_state_name¶
この関数は、ノード状態(node_state )をテキスト表現に変換し、主に
bdr.node_summary ビューを実装するために使用されます。
bdr.request_replay_progress_update¶
「リプレイ進行状況更新」Raftメッセージの即時書き込みを要求します。これは主にテスト目的で使用されますが、コンセンサスメカニズムが機能しているかどうかのテストにも使用できます。
bdr.seq_nextval¶
シーケンスインクリメントの内部実装。
PGDグローバルシーケンス と対話するクエリでは、標準の
nextval
の代わりにこの関数を使用します。
注意事項¶
以下は、内部PGDシーケンス操作関数でもあります。 bdr.seq_currval
とbdr.sql_lastval は自動的に使用されます。
bdr.show_subscription_status¶
サブスクリプションステータスに関する情報を取得し、主に
bdr.subscription_summary ビューを実装するために使用されます。
bdr.get_node_conflict_resolvers¶
ローカルノード上のすべての競合リゾルバーのテキスト文字列を表示します。
bdr.reset_subscription_stats¶
bdr.stat_subscription
で表示される、サブスクリプションによって作成された統計をリセットした後、ブール値の結果を返します。
bdr.reset_relation_stats¶
bdr.stat_relation
から見た、リレーション統計をリセットした後、ブール値の結果を返します。
bdr.pg_xact_origin¶
指定されたトランザクションのオリジンIDを返します。
概要¶
bdr.pg_xact_origin(xmin xid)
パラメーター¶
xid—オリジンが返されるトランザクションID、
bdr.difference_fix_origin_create¶
引数として渡された指定された名前で bdr_
プレフィックスを追加して、レプリケーションオリジンを作成します。オリジンの内部IDを返します。これはpg_replication_origin_create()
と同じ機能を実行しますが、これにはpostgresのスーパーユーザー権限ではなくbdr_superuser
が必要です。
bdr.difference_fix_session_setup¶
現在のセッションを現在のオリジンからのリプレイとしてマークします。この関数は、セッションに対して暗黙的に事前に作成されたbdr_local_only_origin
ローカルレプリケーション起点を使用します。これにより、リプレイの進行状況を報告でき、voidを返します。この関数は、この関数がpostgresスーパーユーザー権限ではなくbdr_superuserを必要とすることを除いて、
pg_replication_origin_session_setup()
と同じ機能を実行します。関数の以前の形式であるbdr.difference_fix_session_setup(text)
は非推奨であり、今後のリリースで削除されます。
概要¶
bdr.difference_fix_session_setup()
bdr.difference_fix_session_reset¶
現在のセッションをどのオリジンからも再生していないものとしてマークし、基本的にbdr.difference_fix_session_setup()
の効果をリセットします。
voidを返します。この関数は、この関数がpostgresのスーパーユーザー権限ではなくbdr_superuserを必要とすることを除いて、
pg_replication_origin_session_reset() と同じ機能を持っています。
概要¶
bdr.difference_fix_session_reset()
bdr.difference_fix_xact_set_avoid_conflict¶
LSN
’0/0’およびタイムスタンプ’2000-01-01’でコミットされたトランザクションをリプレイするものとして、現在のトランザクションをマークします。この関数は、postgresのスーパーユーザー権限ではなくbdr_superuserが必要であることを除いて、
pg_replication_origin_xact_setup('0/0', '2000-01-01')
と同じ機能を持っています。
概要¶
bdr.difference_fix_xact_set_avoid_conflict()
bdr.resynchronous_table_from_node¶
リモートノードからリレーションを再同期します。
概要¶
bdr.resynchronize_table_from_node(node_name name, relation regclass)
パラメーター¶
node_name—リレーションデータをコピーまたは再同期するノード。relation—リモートノードからコピーするリレーション。
注意事項¶
このファンクションは、リレーションのグローバルDMLロックを取得し、リレーションをローカルで切り捨て、リモートノードからリレーションにデータをコピーします。
リレーションは、同じ名前と定義で両方のノードに存在する必要があります。
以下がサポートされています。
同じパーティション定義を持つパーティションテーブルの再同期
パーティションテーブルから非パーティションテーブルへ、およびその逆の再同期
外部キー制約を一時的に削除して再作成することによる参照テーブルの再同期
参照先テーブルで関数を実行した後、参照先列のデータが参照元列の値と一致しなくなった場合、エラーがスローされます。参照テーブルデータを再同期した後、関数を再実行します。
さらに、リモートノードからデータをコピーした後にローカルで生成された列の値を計算することにより、生成された列を含むテーブルの再同期をサポートします。
現在、row_filtersはこの関数によって無視されます。
bdr.resynchronize_table_from_node
ファンクションは、所有者がbdr_superuser権限を持っている場合、テーブルの所有者のみが実行できます。
bdr.consensus_kv_store¶
一貫性のあるKVストアに値を保存します。
値の有効期限のタイムスタンプを返します。これはttl に依存します。
ttl がNULL の場合、これはinfinity
を返します。値が削除された場合、-infinity を返します。
概要¶
bdr.consensus_kv_store(key text, value jsonb,
prev_value jsonb DEFAULT NULL, ttl int DEFAULT NULL)
パラメーター¶
key—挿入、更新、または削除するための任意の一意のキー。value—格納するJSON値。 NULLの場合、既存のレコードは削除されます。prev_value—設定されている場合、書き込み操作は現在の値がprev_valueに等しい場合にのみ実行されます。ttl—新しい値の存続時間(ミリ秒)。
注意事項¶
これは内部関数であり、主にHARPによって使用されます。
警告
ユーザアプリケーションでこの関数を使用しないでください。
bdr.consensus_kv_fetch¶
一貫性のあるKVストアからJSON形式で値を取得します。
概要¶
bdr.consensus_kv_fetch(IN key text) RETURNS jsonb
パラメーター¶
key—取得する任意のキー。
注意事項¶
これは内部関数であり、主にHARPによって使用されます。
警告
ユーザアプリケーションでこの関数を使用しないでください。
タスクマネージャー機能¶
bdr.taskmgr_set_leader¶
指定されたnode
がタスクマネージャーリーダーノードになるように要求します。リーダーノードは、新しいタスクの作成を担当します(現在、自動パーティションのみがこの機能を利用します)。監視ノード、ロジカルスタンバイ、またはサブスクライバー専用ノードは、リーダーになることはできません。このような要求は
ERROR で失敗します。
概要¶
bdr.taskmgr_set_leader(node name, wait_for_completion boolean DEFAULT true);
bdr.taskmgr_get_last_completed_workitem¶
クラスター内のすべてのノードで正常に完了した最後の作業項目のid
を返します。
概要¶
bdr.taskmgr_get_last_completed_workitem();
bdr.taskmgr_work_queue_check_status¶
この機能を使用すると、タスクを生成して終了するジョブを実行しているバックグラウンドワーカーのステータスを確認できます。
ステータスは、次のビューで見ることができます。bdr.taskmgr_work_queue_local_status
bdr.taskmgr_work_queue_global_status
概要¶
bdr.taskmgr_work_queue_check_status(workid bigint
local boolean DEFAULT false);
パラメーター¶
workid—タスクのキー。local—ローカルステータスのみを確認します。
注意事項¶
Taskmgrワーカーは、 bdr.autopartition
関数が初めて呼び出される前でも、常にバックグラウンドで実行されています。無効なworkid
が使用された場合、関数はunknown を返します。 In-progress
は典型的なステータスです。
bdr.node_catchup_state_name¶
キャッチアップ州コードを名前に変換する
概要¶
bdr.node_catchup_state_name(catchup_state oid);
パラメーター¶
catchup_state—キャッチアップ状態のOidコード。
bdr.bdr_track_commit_decision¶
トランザクションのコミットステータスを共有メモリハッシュテーブルに保存します。これは、アップグレードスクリプトによって使用され、 bdr.node_pre_commitカタログに保存されているコミットの決定を共有メモリハッシュテーブルに転送します。これはWALにも記録されるため、WALからリロードできます。
概要¶
bdr.bdr_track_commit_decision(OID, xid, xid, "char", timestamptz, boolean);
bdr.bdr_get_commit_decisions¶
共有メモリの状態を検査するコンビニエンスルーチン
概要¶
bdr.bdr_get_commit_decisions(dbid OID,
origin_node_id OID,
origin_xid xid,
local_xid xid,
decision "char",
decision_ts timestamptz,
is_camo boolean)
bdr.show_workers¶
bdrワーカーに関する情報。
概要¶
bdr.show_workers(
worker_pid int,
worker_role int,
worker_role_name text,
worker_subid oid
bdr.show_writers¶
bdr.writers ビューで使用される関数。
bdr.node_kind_name¶
ノードの種類のわかりやすい名前を返します(data|standby|witness|subscriber-only)