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)