asopi tech
asopi techIndie Developer

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です。まずはクイックスタートから試してみてください。

参考資料

関連ページ