ロギングとリカバリー
Altibaseは、伝統的なトランザクションの概念であるACID特性を完全にサポートすることを基本とします。
ACIDは、一般的なデータベースシステムがトランザクション処理のために基本的に提供する特性として、原子性(atomicity)、一貫性(consistency)、独立性(isolation)、永続性(durability)の4つを意味します。Altibaseではこれら4つの特性を全て満足するトランザクション処理方法を提供します。これらの特性のうち、永続性を提供するためにはディスクとの同期化機能が必須であり、これはディスクへのアクセスによる性能低下を引き起こします。しかし、Altibaseは、独自の技術開発により高速のトランザクション処理を保障しつつ、トランザクションの永続性を提供する特徴を持っています。
実際のサービスが行われる環境では、偶発的なサーバーの障害によりデータベースのシステムダウンが発生する可能性もあり、そのような状態でのデータベースの回復は進行中であるトランザクションの状態を正確に反映、もしくは完全に撤回できる機能が必要です。Altibaseは、ロギングの際、WAL(Write Ahead Log)プロトコルを適用して様々な状態のトランザクションを回復時点に正確に反映することにより、トラブル発生前の状態に完全に復旧されることを保障します。
Altibaseは、構築されたデータベースをファイルに、暗黙的(implicit)または明示的(explicit)な方式でディスクのバックアップデータベースファイルに同期化(checkpoint)します。この際、同期化の過程では全ての変更されたページがディスクに反映されなければなりませんが、その時に該当ページの一貫性を維持するためにPage Latchをかけなければならない場合が発生します。しかし、ハイブリッド メモリデータベースの特性を考慮すると、Page Latchを使うのは、実行中のトランザクションとの衝突を引き起こし、同期化の際にシステム全体の性能を急激に低下させる危険性があります。このような問題を解決するため、Altibaseは同期化の際に、Page Latchを使わない代わりにバックアップディスクを二つ置き、交互に反映するようにしたピンポンチェックポイントと呼ぶ技術を実装しています。これにより、同期化の過程で、実行中のトランザクションに負荷を与えずシステム全体の性能アップを図っています。
Altibaseシステムのページのサイズやファイルシステムの物理的なページサイズが異なった場合、Disk I/Oの実行中に異常終了されると、ページが完全ではない状態で残されることがあります。このような現象を防ぐためにAltibaseは、ページのI/Oを行うときに、ディスクの特定の領域に存在するダブルライトバッファ領域に同じイメージを予め保存しておきます。そして、Altibaseの再起動時に、ダブルライトバッファの内容と実際のページの内容をチェックし、不完全なページを復旧します。