コンテンツにスキップ

高レベル API

Native の高レベル API は、akkaradb/AkkaraDB.hpp にある C++ 向けの型付きテーブル層です。AkkEngine の直接的な保存モデルはそのまま使いつつ、C++ 構造体、主キー、セカンダリインデックス、クエリ式、参照、結合、スキーマフックを扱えるようにします。

C++ アプリケーションに AkkaraDB Native を組み込み、バイト列のキー / 値を自分で組み立てずにテーブル風の API を使いたい場合に向いています。バイナリのキーレイアウトを完全に制御したい場合、サーバー / プロトコル層を作る場合、エンジンの内部挙動を直接検証したい場合は、低レベルの AkkEngine API を使います。

目的ページ
データベースを開き、構造体を定義し、型付きテーブル操作を使う高レベル API の使い方
型付きテーブル、インデックス、参照、結合、スキーマフックが AkkEngine にどう対応するかを理解する高レベル API のアーキテクチャ
所有オブジェクトと起動モードを設定するAkkaraDB
型付き CRUD、スキャン、インデックス、フック、行 ID を使うPackedTable
C++ の型付きクエリ式とインデックス計画を理解するQuery
行 ID 参照と型付き結合を扱うRef と Join
スキーマフックと外部キーアクションを登録するSchema と Foreign Key
値のエンコードと移行境界を理解するBinPack と Compatibility
役割
akkaradb::AkkaraDBengine::AkkEngine を所有し、型付きテーブルを開きます。
akkaradb::PackedTable<&T::id>C++ 構造体を主キーで保存し、型付き CRUD、走査、クエリ、インデックス、参照、結合ヘルパーを提供します。
AKKARADB_ENTITY(Type, PrimaryKey, ...)構造体の主キー情報とクエリ用フィールドを登録します。
AKKARADB_QUERYABLE(Type, ...)RefTraits を宣言せず、C++ クエリプロキシ用のフィールドだけを登録します。
akkaradb::Ref<T>別エンティティへの安定した行 ID ベースの参照を保存します。
akkaradb::AkkaraDB::Schemaテーブルと外部キー風のフック動作を登録します。

この層の保存先は引き続き AkkEngine です。WAL、memtable、SSTable、blob、VersionLog、API サーバー、クラスタの挙動は、データベースを開くときに指定したエンジンオプションによって決まります。