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を用いることでメモリおよびディスク上のログを一意に特定できます。既に明確にコミットされたログは、複数レプリカ間で完全に一致します。