- Goで開発された高性能なキー・バリューDBで、Cインターフェースをサポートし、LSMツリー、MVCC、lock-free構造など 最新のDB設計原則 を反映
- WAL(Write Ahead Logging)ベースで 即時一貫性と耐久性 を保証し、バックグラウンドのフラッシュ/コンパクション、lock-free並列処理などにより高い書き込み/読み取り性能を提供
- シングルノードの組み込み型構造で、ネットワークや分散なしに 軽量かつ高速な データ保存を志向
Wildcatの主な特徴
- LSMツリー ベースで、書き込み集中型ワークロードに最適化
- MVCC(マルチバージョン同時実行制御)、lock-freeデータ構造により主要経路をロックなしで処理
- WALロギング: トランザクション全体の状態記録と復旧をサポート
- バージョン認識skip list によりインメモリMVCCを高速化
- スレッドセーフ/lock-free書き込み およびアトミックなキャッシュ/メモリ管理
- SSTable は不変(immutable)なBTree構造で、キー・バリュー分離とブルームフィルター最適化をサポート
- トランザクションのACID保証 および耐久性(Full/Partial/None)レベルの選択が可能
- Crash recovery によりコミット済み/未完了トランザクションの両方を復旧
- バッチ/イテレーター: 範囲、プレフィックス、双方向反復をサポート
- Bloom Filter、key-value分離(
.klog, .vlog)、tombstone/バージョン認識コンパクションなど最新設計を採用
- 統計/ロギング/モニタリング: Stats()、LogChannel など多様な診断・統計インターフェースを提供
- CライブラリのビルドとAPI: Go共有ライブラリとしてビルドでき、さまざまな言語から直接利用可能
- Go 1.24+ および Linux/macOS/Windows(64ビット)をサポート
なぜ重要なのか?(他の組み込みKVとの違い)
- RocksDB、Badger などに似たLSM+MVCC構造だが、Goネイティブのlock-free・マルチスレッド設計 によりGo環境で最適化された使い勝手を実現
- 組み込みDB特化: ネットワーク/レプリケーションのオーバーヘッドなしに 即時一貫性/耐久性/高性能 を実現
- トランザクション復旧、未完了状態の維持などにより信頼性と透明性が高い
- 多様なコンパクション/バッファ/キャッシュパラメータ により、ワークロードごとのカスタムチューニングが可能
2件のコメント
不思議なくらいDBがたくさん出てくる言語
妙にDBがたくさん出てくる言語