OceanBaseデータベースはログを永続化し、複数のレプリカ間でデータを同期します。
複数のレプリカ間では、Paxosプロトコルを用いて同期が行われます。具体的には、OceanBaseデータベースV4.0.0バージョンはファイルシステムを参考にし、ログサービスを「Paxos Backed Append Only Log File System」、略してPalfとして抽象化しています。
Palfはデータベースの基盤となるコンポーネントであり、主に以下の2つの重要な機能を実現する必要があります:
トランザクションシステムに対して、以下の特性を備えます:
トランザクションシステムのWrite-Ahead Loggingの機能要件を満たし、トランザクションの原子性と永続性を実現します。
特定の意味を持つタイムスタンプを返すことをサポートし、読み書きトランザクションやスタンバイ機の弱い整合性など、トランザクションバージョン番号を生成するニーズを満たします。
トランザクションの高性能を実現すると同時に、マルチコア環境下でのスケーラビリティも確保します。
ドメインストアに対して、以下の特性を備えます:
Paxosプロトコルに基づき、過半数のレプリカでのデータ永続化を保証します。また、メンバー変更を通じて災害復旧機能を提供し、高可用性と高信頼性を実現します。
非同期レプリケーション機能を提供します。
完整な診断・監視機能を提供し、診断可能で運用保守可能な仕様を実現します。
OceanBaseデータベースV4.0.0バージョンでは、1つのログはログストリーム内で一意のLSN(Log Sequence Number)で表されます。LSNを使用することで、メモリおよびディスク上で1つのログを一意に特定できます。明確にコミットされたログは、複数のレプリカ間で完全に一致します。