OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    Paxosプロトコル

    最終更新日:2026-04-09 02:53:56  更新
    シェア
    このページの内容
    Paxos一貫性プロトコルの原理
    OceanBaseデータベースのPaxosプロトコルと選挙プロトコルの関係
    Paxosプロトコルによるブレイン・スプリットの回避方法
    「ブレイン・スプリット」とは?
    「ブレイン・スプリット」を回避するにはどうすればよいですか?

    折りたたみ

    シェア

    OceanBaseデータベースは、Paxosの最適化されたMulti-Paxosを使用して、複数レプリカ間のデータ同期とクラスタの高可用性を実現します。

    Paxos一貫性プロトコルの原理

    Paxosの原理については、以下のリンクを参照してください。

    • Paxos Made Simple

    OceanBaseデータベースのPaxosプロトコルと選挙プロトコルの関係

    OceanBaseデータベースのPaxos実装と選挙プロトコルは、一貫性プロトコル(ログサービス)の実装を構成します。両者には一定の関連性がありますが、実装上ではできるだけカップリングを低減するようにしています。

    選挙プロトコルはまず複数のレプリカからリーダーを選出し、Leaseメカニズムを通じてリーダーの正当性を保証します。ログは選出されたリーダーに基づいてMulti-Paxosの状態機械を進め、未確認ログの復旧を行い、復旧フェーズが完了した後にサービスを開始します。

    Paxosプロトコルによるブレイン・スプリットの回避方法

    「ブレイン・スプリット」とは?

    従来のデータベースのプライマリ/スタンバイ同期災害復旧ソリューションでは、システムが正常に動作している場合、外部にデータの読み書きサービスを提供するプライマリノード(マスターとも呼ばれる)が存在し、残りのノードはスタンバイノード(スレーブとも呼ばれる)としてプライマリノードからログ形式でデータを同期し、災害復旧ノードとして待機します。

    システムに異常が発生した場合、例えばプライマリノードとスタンバイノード間でネットワーク分離が発生した場合:

    プライマリノードと同一データセンター内のアプリケーションサーバーとの接続は正常であり、引き続きプライマリノードとしてデータの読み書きサービスを提供します。

    災害復旧の意思決定者または自動管理ツールは、プライマリノードのネットワーク不通を検出した場合、サービスの継続性を確保するために、スタンバイノードをプライマリノードに昇格させてデータの読み書きサービスを提供しようとします。

    このようなシナリオでは、同時に2つ以上のプライマリノードが存在し、アプリケーションが複数回書き込むことで、深刻なデータの正確性問題が発生します。この現象を「ブレイン・スプリット」と呼びます。

    「ブレイン・スプリット」を回避するにはどうすればよいですか?

    OceanBaseデータベースは、Paxosプロトコルに基づいて高可用性の選挙とログ同期プロトコルを実装しており、一方でデータの安全性を保証し、他方で良好なサービス継続性を提供します。

    Paxosプロトコルは過半数に基づくプロトコルであり、簡単に言えば、いかなる決定も過半数のノードが一致して初めて成立します。

    OceanBaseデータベースの高可用性選挙は、いかなる瞬間でも、過半数の承認を得たノードのみがプライマリノードとなって読み書きサービスを提供できるように保証します。集合内の任意の2つの過半数には必ず共通部分が存在するため、同時に2つのプライマリノードが選出されることはありません。

    あるノードがプライマリノードに選出された後、リース(Leaseとも呼ばれる)メカニズムによってサービスの継続性が保証されます。

    • 少数派のスタンバイノードに障害が発生した場合、プライマリノードのサービスには一切影響しません。

    • プライマリノードに障害やネットワーク分離が発生した場合、過半数のスタンバイノードは最初にリースの期限切れを待ちます。リースが期限切れになると、元のプライマリノードは読み書きサービスを提供しなくなり、その際OceanBaseデータベースは残りのノード集合から新しいプライマリノードを自動的に選出してサービスを継続します。

    OceanBaseデータベースのログ同期プロトコルでは、書き込み対象のデータが過半数のノードで永続化されることを要求します。典型的な同一都市内の3つのデータセンター構成を例にとると、任意のトランザクションの永続化されたログは、少なくとも2つのデータセンターに同期された後に、トランザクションは最終的にコミットされます。

    • 少数派のスタンバイノードに障害が発生した場合も、同様に、プライマリノードのサービスには一切影響せず、データは損失されません。

    • プライマリノードに障害やネットワーク分離が発生した場合、残りのノードには完全なデータが保持されています。高可用性選挙は最初に新しいプライマリノードを選出し、そのノードは復旧プロセスを実行して残りのノードから完全なデータを復旧し、その後サービスを継続できます。このプロセス全体は完全に自動化されています。

    以上の分析に基づき、OceanBaseデータベースはPaxosプロトコルに基づいて実装された高可用性選挙とログ同期プロトコルにより、「ブレイン・スプリット」を回避し、同時にデータの安全性とサービスの継続性を保証します。

    前のトピック

    複数レプリカ間のログ同期
    最後

    次のトピック

    ノード障害の自動処理
    次
    このページの内容
    Paxos一貫性プロトコルの原理
    OceanBaseデータベースのPaxosプロトコルと選挙プロトコルの関係
    Paxosプロトコルによるブレイン・スプリットの回避方法
    「ブレイン・スプリット」とは?
    「ブレイン・スプリット」を回避するにはどうすればよいですか?