Asopitech VS
CockroachDB vs Alopex DB
CockroachDBの層構造、範囲ごとのRaft、Parallel Commits、SERIALIZABLEの分離を、Alopex DBと比べて紹介します。
更新: 2026/10/11
CockroachDBとは
CockroachDBは、複数ノードにまたがって動く分散SQLデータベースです。ノードが落ちても、データのコピーが残るように設計されています。VECTOR 型とベクトル索引は、本体の機能です。
仕組み
公式のアーキテクチャ文書は、層に分けて説明しています。
- SQL層:SQLを受けて、KVの操作へ変換します。
- トランザクション層:クラスタ全体にまたがるトランザクションを扱います。複数の範囲やテーブルにまたがる場合も、Parallel Commitsという分散のアトミックなコミットの手順で正しさを保ちます。時刻にはハイブリッド論理時計を使い、書き込みの途中はwrite intentという印で表します。
- 分散層:全データを1つの巨大なソート済みマップとして見せ、連続したキー範囲(range)に分割します。範囲の位置は、meta1とmeta2の2段の索引で引きます。
- 複製層:各範囲を複数のノードへ、Raftで同期的に複製します。
- ストレージ層:Pebbleを使います。Pebbleは、RocksDBに着想を得たGo製の組み込みKVストアです。
主な機能
- 分散SQLと、範囲ごとのRaftによる複製。
- 分散トランザクション(Parallel Commits)。
VECTOR型と、CREATE VECTOR INDEXによる分散ベクトル索引(C-SPANN。pgvector互換の構文で、hnswはC-SPANNの別名)。
制限
既定の分離レベルはSERIALIZABLEです。公式は、このレベルでは再試行が必要なエラーをアプリが処理する必要があると書いています。複数ノードのクラスタで動かす製品です。
Alopex DBとの違い
CockroachDBは複数ノードのクラスタを前提にした分散SQLデータベースです。Alopex DBは、アプリに組み込む1ファイルのデータベースから始められ、HTTP・gRPCのサーバーとしても使えます。クラスタを組まずに、SQLとベクトル検索を手元で使えるのが強みです。
ベクトル検索は、CockroachDBが分散ベクトル索引(C-SPANN)、Alopex DBがHNSW索引です。Alopex DBでは、完全探索かHNSWかを選べます。
一つのファイルで始め、同じSQLのままAlopex DBのクラスタへ進めるのがAlopex DBです。まずはクイックスタートから試してみてください。
参考資料
- CockroachDB docs: Architecture Overview、Distribution Layer、Transaction Layer、Storage Layer、Transactions、VECTOR、Vector Indexes