Native の高レベル API は、akkaradb/AkkaraDB.hpp にある C++ 向けの型付きテーブル層です。AkkEngine の直接的な保存モデルはそのまま使いつつ、C++ 構造体、主キー、セカンダリインデックス、クエリ式、参照、結合、スキーマフックを扱えるようにします。
C++ アプリケーションに AkkaraDB Native を組み込み、バイト列のキー / 値を自分で組み立てずにテーブル風の API を使いたい場合に向いています。バイナリのキーレイアウトを完全に制御したい場合、サーバー / プロトコル層を作る場合、エンジンの内部挙動を直接検証したい場合は、低レベルの AkkEngine API を使います。
目的別に読む
Section titled “目的別に読む”| 目的 | ページ |
|---|---|
| データベースを開き、構造体を定義し、型付きテーブル操作を使う | 高レベル API の使い方 |
型付きテーブル、インデックス、参照、結合、スキーマフックが AkkEngine にどう対応するかを理解する | 高レベル API のアーキテクチャ |
| 所有オブジェクトと起動モードを設定する | AkkaraDB |
| 型付き CRUD、スキャン、インデックス、フック、行 ID を使う | PackedTable |
| C++ の型付きクエリ式とインデックス計画を理解する | Query |
| 行 ID 参照と型付き結合を扱う | Ref と Join |
| スキーマフックと外部キーアクションを登録する | Schema と Foreign Key |
| 値のエンコードと移行境界を理解する | BinPack と Compatibility |
| 型 | 役割 |
|---|---|
akkaradb::AkkaraDB | engine::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 サーバー、クラスタの挙動は、データベースを開くときに指定したエンジンオプションによって決まります。