BDR (Bi-Directional Replication)¶
概要¶
BDRは、マルチマスターレプリケーションとデータ分散を高度な競合管理、データ損失保護、およびネイティブ論理レプリケーションよりも最大5倍高速なスループットで提供するPostgreSQLの拡張機能であり、最大ファイブナインの高可用性を備えた分散PostgreSQLクラスターを有効にします。
BDRの動作に関する詳細な概要は、 Architectural overview の章で説明されています。
サポートされているPostgreSQLデータベースサーバー¶
BDRはPostgres、 EDB Postgres Extended Server、およびEDB Postgres Advanced Serverディストリビューションと互換性があり、標準のPostgres拡張機能として展開できます。サポートされているバージョンの組み合わせの詳細については、
Compatibility matrix を参照してください。
一部の主要なBDR機能は、ターゲットのPostgresデータベースサーバーで使用可能な特定のコア機能に依存します。したがって、 BDRユーザーは、ビジネスニーズに最適なPostgresデータベースサーバーディストリビューションも採用する必要があります。たとえば、 BDR機能Commit At Most Once (CAMO)を使用することがユースケースにとってミッションクリティカルである場合、 CAMOを処理するために必要なコア機能がないため、コミュニティのPostgreSQLディストリビューションを採用しないでください。
Choosing a Postgres distribution の完全な機能マトリックスの互換性を参照してください。
- BDRは、ネイティブに近いPostgres互換性を提供します。ただし、一部のアクセスパターンは、マルチノードセットアップで単一のインスタンスで機能するとは限りません。マルチノード設定で安全に複製できるものにもいくつかの制限があります。
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グループの作成と参加
- Witnessノード
- ロジカルスタンバイノード
- フィジカルスタンバイノード
- サブグループ
- デコードワーカー
- ノードの再起動とダウンしたノードの回復
- 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のように動作するBDR関数
- 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
- 概要
- パラメーター
- 注意事項
- bdr.extract_timestamp_from_snowflakeid
- 概要
sql bdr.extract_timestamp_from_snowflakeid(snowflakeid bigint) - パラメーター
- 注意事項
- bdr.extract_nodeid_from_snowflakeid
- 概要
sql bdr.extract_nodeid_from_snowflakeid(snowflakeid bigint) - パラメーター
- 注意事項
- bdr.extract_localseqid_from_snowflakeid
- 概要
sql bdr.extract_localseqid_from_snowflakeid(snowflakeid bigint) - パラメーター
- 注意事項
- bdr.timestamp_to_snowflakeid
- 概要
sql bdr.timestamp_to_snowflakeid(ts timestamptz) - パラメーター
- 注意事項
- bdr.extract_timestamp_from_timeshard
- 概要
- パラメーター
- 注意事項
- bdr.extract_nodeid_from_timeshard
- 概要
- パラメーター
- 注意事項
- bdr.extract_localseqid_from_timeshard
- 概要
- パラメーター
- 注意事項
- bdr.timestamp_to_timeshard
- 概要
- パラメーター
- 注意事項
- KSUUID v2関数
- KSUUID v1の機能
- Column-level conflict detection
- Conflict-free replicated data types
- Transaction streaming
- Durability and 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_handlersbdr.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
- バージョン情報機能
- システム情報機能
- システムと進行情報パラメーター
- コンセンサス機能
- ユーティリティ関数
- 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
- 例
- グローバル勧告ロック
- モニタリング機能
- 内部機能
- BDRメッセージペイロード関数
- bdr.get_global_locks
- bdr.get_slot_flush_timestamp
- BDR内部機能レプリケーション機能
- 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 name、リレーションregclass)
- 概要
- パラメーター
- 注意事項
- bdr.consensus_kv_store
- 概要
- パラメーター
- 注意事項
- bdr.consensus_kv_fetch
- 概要
- パラメーター
- 注意事項
- bdr.alter_subscription_skip_changes_upto
- 概要
- 例