BDR (Bi-Directional Replication)¶
概要¶
BDRは、マルチマスターレプリケーションとデータディストリビューションを高度な競合管理、データ損失保護、およびネイティブロジカルレプリケーションよりも最大5倍高速なスループットを提供するPostgreSQLの拡張機能であり、最大ファイブナインの高可用性を備えた分散PostgreSQLクラスターを有効にします。
BDRの動作に関する詳細な概要は、 Architectural Overview の章で説明されています。
サポートされているPostgreSQLデータベースサーバー¶
BDRは、PostgresSQL、 EDB Postgres Extended、 EDB Postgres AdvancedフレーバーのPostgresSQLデータベースサーバーと互換性があり、標準のPG拡張機能として展開できます。サポートされているバージョンの組み合わせの詳細については、
Comptibility Matrix を参照してください。
一部のキーBDR機能は、ターゲットのPostgresSQLデータベースサーバ内で使用可能な特定のコア機能に依存することにノートすることが重要です。したがって、 BDRのお客様は、ビジネスニーズに最適なPostgresSQLデータベースサーバも採用することが不可欠です。例、 BDR機能「コミット アット ワンス(CAMO)」がBDRのお客様のユースケースにとってミッションクリティカルである場合、CAMOのハンドルに必要なコア機能がないため、コミュニティのPostgreSQLフレーバーを採用しないでください。機能マトリクスの完全な互換性は、
Choosing a Postgres distribution にあります。
- BDRは、ネイティブに近いPostgreSQLとの互換性を提供します。ただし、一部のアクセスパターンは、マルチノード設定ではシングルインスタンスの場合と同様に機能するとは限りません。マルチノード設定で安全に複製できるものにもいくつかの制限があります。
Application Usage の章では、アプリケーション開発の観点からBDRがどのように動作するかについて詳しく説明します。
- Release Notes
- Architectural Overview
- Application use
- PostgreSQL configuration for BDR
- BDRのPostgreSQL設定
- BDR固有の設定
- 競合ハンドリング
- グローバルシーケンスパラメータ
- DDLハンドリング
- グローバルロック
- ノード管理
- 汎用レプリケーション
bdr.standby_slot_namesbdr.standby_slots_min_confirmedbdr.writer_input_queue_sizebdr.writer_output_queue_sizebdr.min_worker_backoff_delay- CRDT
- 最大準備トランザクション
- Eager Replication
- Commit At Most Once
- トランザクションストリーミング
- ラグ制御
- タイムスタンプベースのスナップショット
- モニタリングとロギング
- 内部
- Node Management
- BDRグループの作成と参加
- ウィットネスノード
- ロジカルスタンバイノード
- フィジカルスタンバイノード
- サブグループ
- デコードワーカー
- ノードの再起動とダウンしたノードの回復
- BDRグループからのノードの削除
- BDRトポロジのリスト
- ノード管理インターフェース
- bdr.create_node
- 概要
- パラメーター
- 注意事項
- bdr.drop_node
- 概要
- パラメーター
- 注意事項
- bdr.create_node_group
- 概要
- パラメーター
- 注意事項
- bdr.alter_node_group_config
- 概要
- パラメーター
- 注意事項
- bdr.join_node_group
- 概要
- パラメーター
- 注意事項
- bdr.promote_node
- 概要
- 注意事項
- bdr.wait_for_join_completion
- 概要
- パラメーター
- 注意事項
- bdr.part_node
- 概要
- パラメーター
- 注意事項
- bdr.alter_node_interface
- 概要
- パラメーター
- 注意事項
- bdr.alter_subscription_enable
- 概要
- パラメーター
- 注意事項
- bdr.alter_subscription_disable
- 概要
- パラメーター
- 注意事項
- ノード管理コマンド
- DDL Replication
- DDLレプリケーションオプション
- BDRシステムでのDDLの実行
- DDLロックの詳細
- DDLの影響の最小化
- ダウンノードでのDDLの処理
- ステートメント固有のDDLレプリケーションに関する懸念
- BDR DDLコマンド処理マトリックス
- ALTERシーケンス
- ALTERテーブル
- ALTER TABLEの許可されないコマンド
- ALTER TABLEのロック
- ALTER TABLEの例
- ALTERタイプ
- コメント
- シーケンスを作成する
- テーブルを作成する
- CREATE TABLE ASとSELECT INTO
- 説明する
- EXPLAIN ANALYZEレプリケーション
- EXPLAIN ANALYZEロック
- 付与と取り消し
- ロックテーブル
- セキュリティラベル
- TRUNCATEレプリケーション
- TRUNCATEロック
- ロール操作ステートメント
- 制限されDDLの回避策
- CONSTRAINTの追加
- 列の追加
- 列のタイプを変更する
- 他のタイプの変更
- DDLのように動作するBDRFunctions
- Security and Roles
- Conflicts
- 競合はどのように発生するか
- 競合の種類
- PRIMARY KEYまたはUNIQUEの競合
- INSERT / INSERTの競合
- マルチプルのUNIQUEコンストレインに違反するINSERT操作
- UPDATE/UPDATEの競合
- PRIMARY KEYでのUPDATEの競合
- マルチプルのUNIQUEコンストレインに違反するUPDATE操作
- UPDATE/DELETEの競合
- INSERT / UPDATEの競合
- INSERT/DELETEの競合
- DELETE/DELETEの競合
- 3つ以上のノードとの競合
- 外部キー制約の競合
- TRUNCATEの競合
- 除外制約の競合
- ロールとテーブルスペースの違いによるデータの競合
- ロックの競合とデッドロックの中止
- 発散する競合
- TOASTサポート詳細
- 競合の回避または許容
- 競合検出
- 競合の解決
- 競合ロギング
- LiveCompareによるデータ検証
- Sequences
- BDRグローバルシーケンス
- UUID、KSUUID、およびその他のアプローチ
- グローバルシークエンス管理インターフェイス
- bdr.alter_sequence_set_kind
- 概要
sql bdr.alter_sequence_set_kind(seqoid regclass, seqkind text) - パラメーター
- 注意事項
- bdr.extract_timestamp_from_snowflakeid
- 概要
sql bdr.extract_timestamp_from_snowflakeid(snowflakeid bigint) - パラメーター-
snowflakeid-スノーフレークイドシーケンスの値 - 注意事項
- bdr.extract_nodeid_from_snowflakeid
- 概要
sql bdr.extract_nodeid_from_snowflakeid(snowflakeid bigint) - パラメーター-
snowflakeid-スノーフレークイドシーケンスの値 - 注意事項
- bdr.extract_localseqid_from_snowflakeid
- 概要
sql bdr.extract_localseqid_from_snowflakeid(snowflakeid bigint) - パラメーター-
snowflakeid-スノーフレークイドシーケンスの値 - 注意事項
- bdr.timestamp_to_snowflakeid
- 概要
sql bdr.timestamp_to_snowflakeid(ts timestamptz) - パラメーター-
ts-スノーフレークイドシーケンス生成に使用されるタイムスタンプ - 注意事項
- bdr.extract_timestamp_from_timeshard
- 概要
- パラメーター
- 注意事項
- bdr.extract_nodeid_from_timeshard
- 概要
- パラメーター
- 注意事項
- bdr.extract_localseqid_from_timeshard
- 概要
- パラメーター
- 注意事項
- bdr.timestamp_to_timeshard
- 概要
- パラメーター
- 注意事項
- KSUUID v2Functions
- KSUUID v1Functions
- Column-level conflict detection
- Conflict-free Replicated Data Types
- Transaction streaming
- Durability & Performance Options
- Group Commit
- Eager Replication
- Commit At Most Once
- Lag Control
- AutoPartition
- Timestamp-Based Snapshots
- Replication Sets
- Stream Triggers
- Explicit Two-Phase Commit (2PC)
- Catalogs and views
- ユーザーに表示されるカタログとビュー
bdr.conflict_historybdr.conflict_history列bdr.conflict_history_summarybdr.conflict_history_summary列bdr.consensus_kv_databdr.consensus_kv_data列bdr.camo_decision_journalbdr.camo_decision_journal列- bdr.crdt_handlers
bdr.crdt_handlers列bdr.ddl_replicationbdr.ddl_replication列bdr.dependbdr.global_consensus_journalbdr.global_consensus_journal列bdr.global_consensus_journal_detailsbdr.global_consensus_journal_details列bdr.global_consensus_response_journalbdr.global_consensus_response_journal列bdr.global_lockbdr.global_lock列bdr.global_locksbdr.global_locks列bdr.local_consensus_snapshotbdr.local_consensus_snapshot列bdr.local_consensus_statebdr.local_consensus_state列bdr.local_nodebdr.local_node列bdr.local_node_summarybdr.local_sync_statusbdr.local_sync_status列bdr.network_path_infobdr.network_path_info列bdr.nodebdr.node列bdr.node_catchup_infobdr.node_catchup_info列bdr.node_conflict_resolversbdr.node_conflict_resolvers列bdr.node_groupbdr.node_group列bdr.node_group_replication_setsbdr.node_group_replication_sets列bdr.node_local_infobdr.node_local_info列bdr.node_locationbdr.node_location列bdr.node_log_configbdr.node_log_config列bdr.node_peer_progressbdr.node_peer_progress列bdr.node_pre_commitbdr.node_pre_commit列bdr.node_replication_ratesbdr.node_replication_rates列bdr.node_slotsbdr.node_slots列bdr.node_summarybdr.node_summary列bdr.queuebdr.queue列bdr.replication_setbdr.replication_set列bdr.replication_set_tablebdr.replication_set_table列bdr.replication_set_ddlbdr.replication_set_ddl列bdr.replication_setsbdr.replication_sets列bdr.schema_changesbdr.schema_changes列bdr.sequence_allocbdr.sequence_alloc列bdr.schema_changesbdr.schema_changes列bdr.sequence_allocbdr.sequence_alloc列bdr.sequencesbdr.sequences列bdr.stat_activitybdr.stat_relationbdr.stat_relation列bdr.stat_subscriptionbdr.stat_subscription列bdr.subscriptionbdr.subscription列bdr.subscription_summarybdr.subscription_summary列bdr.replication_statusbdr.replication_status列bdr.tablesbdr.tables列bdr.triggerbdr.trigger列bdr.triggersbdr.workersbdr.workers列bdr.worker_errorsbdr.worker_errors列bdr.writersbdr.writers列bdr.worker_tasksbdr.worker_tasks列bdr.autopartition_work_queuebdr.autopartition_work_queue列bdr.autopartition_workitem_statusbdr.autopartition_workitem_status列bdr.autopartition_local_work_queuebdr.autopartition_local_work_queue列bdr.autopartition_local_workitem_statusbdr.autopartition_local_workitem_status列bdr.group_camo_detailsbdr.group_camo_details列bdr.camo_pairsbdr.camo_pairs列bdr.commit_scopesbdr.commit_scopes列bdr.group_raft_detailsbdr.group_raft_details列bdr.group_replslots_detailsbdr.group_replslots_details列bdr.group_subscription_summarybdr.group_subscription_summary列bdr.group_versions_detailsbdr.group_versions_details列
- 内部カタログとビュー
- ユーザーに表示されるカタログとビュー
- BDR System Functions
- バージョン情報Functions
- システム情報Functions
- システムと進行状況の情報パラメーター
- コンセンサスファンクション
- ユーティリティFunctions
- bdr.wait_slot_confirm_lsn
- 概要
- パラメーター
- bdr.wait_for_apply_queue
- 概要
- パラメーター
- bdr.get_node_sub_receive_lsn
- 概要
- パラメーター
- bdr.get_node_sub_apply_lsn
- 概要
- パラメーター
- bdr.run_on_all_nodes
- 概要
- パラメーター
- 注意事項
- 例
- bdr.run_on_nodes
- 概要
- パラメーター
- 注意事項
- bdr.run_on_group
- 概要
- パラメーター
- 注意事項
- bdr.global_lock_table
- 概要
- パラメーター
- 注意事項
- bdr.wait_for_xid_progress
- 概要
- パラメーター
- 注意事項
- bdr.local_group_slot_name
- 例
- bdr.node_group_type
- 例
- グローバルアドバイザリロック
- モニタリングFunctions
- 内部Functions
- BDRメッセージペイロードFunctions
- bdr.get_global_locks
- bdr.get_slot_flush_timestamp
- BDR内部ファンクションレプリケーションFunctions
- bdr.internal_submit_join_request
- bdr.isolation_test_session_is_blocked
- bdr.local_node_info
- bdr.msgb_connect
- bdr.msgb_deliver_message
- bdr.peer_state_name
- bdr.request_replay_progress_update
- bdr.seq_nextval
- 注意事項
- bdr.show_subscription_status
- bdr.conflict_resolution_to_string
- bdr.conflict_type_to_string
- bdr.get_node_conflict_resolvers
- bdr.reset_subscription_stats
- bdr.reset_relation_stats
- bdr.pg_xact_origin
- 概要
- パラメーター
- bdr.difference_fix_origin_create
- 概要
- bdr.difference_fix_session_setup
- 概要
- bdr.difference_fix_session_reset
- 概要
- bdr.difference_fix_xact_set_avoid_conflict
- 概要
- bdr.resynchronous_table_from_node(node_name 名前、リレーションregclass)
- 概要
- パラメーター
- 注意事項
- bdr.consensus_kv_store
- 概要
- パラメーター
- 注意事項
- bdr.consensus_kv_fetch
- 概要
- パラメーター
- 注意事項
- bdr.alter_subscription_skip_changes_upto
- 概要
- 例