以下はOceanBaseデータベースのマルチモーダルアーキテクチャです。本章では、マルチモーダルKVのアーキテクチャを中心に紹介します。

TableAPI Framework
TableAPIは、データベースサーバーサイドとクライアントの2つの部分に分かれています。
- サーバー側TableAPI:OceanBaseの分散ストレージエンジン上に構築された計算フレームワークです。テーブル形式のデータに対する基本的な処理を提供します。
- TableAPI Client:サーバーサイドTableAPIとやり取りするためのRPCインターフェースを提供し、同時にTableAPI Client内にルーティングおよび高信頼性機能が統合されています。
KVレイヤー
KVレイヤーは、TableAPI Server Frameworkとモデルレイヤーで構成されます。図中のTable、HBase、Redisはそれぞれモデルレイヤーにあたります。各モデルに固有の処理を実装し、そのモデルの操作をテーブルモデルの操作に変換します。例えば、次のように動作します。
- HBaseのモデルレイヤーは、HBaseのマルチバージョン、スパースカラム、ワイドテーブルなどの特性、HBaseが提供する各種Filter、HBaseの行ロックなどの機能を実現しています。同時に、HBaseのモデルレイヤーは、HBaseのRow/Cellに対する操作をOceanBaseの行に対する操作にマッピングします。
- Redisのモデルレイヤーは、Redisの各種コマンドを実現し、同時にRedisのデータ構造に対する操作をOceanBaseテーブルに対する操作に変換します。
- テーブルモデルは、テーブルの基本的なCRUD(作成・読み取り・更新・削除)およびセカンダリインデックス機能を提供し、同時にテーブルモデルをシンプルなKVとして使用することも可能です。
ドライバーレイヤー
モデルが異なればドライバーの実装方式も異なります。例えば:
- OBKV独自のドライバー:例えばOBKV-HBaseは、インターフェースレイヤーでHBaseのインターフェースを実現し、その内部でTableAPI Clientを呼び出してOBKVサーバーサイドとやり取りします。
- オープンソースドライバー:例えばOBKV-Redisは、Redisのネイティブプロトコルと互換性があり、業務システムはRedisプロトコルをサポートする任意のオープンソースクライアントを直接使用して、OBKVサーバーサイドとやり取りできます。