- Go로 개발된 고성능 키-밸류 DB로, C 인터페이스를 지원하며 LSM 트리, MVCC, lock-free 구조 등 최신 DB 설계 원칙을 반영함
- WAL(Write Ahead Logging) 기반 즉시 일관성 및 내구성 보장, 백그라운드 플러시/컴팩션, lock-free 병렬 처리 등으로 높은 쓰기/읽기 성능 제공
- 싱글 노드 내장형 구조로 네트워크나 분산 없이 가볍고 빠른 데이터 저장을 지향함
Wildcat의 주요 특징
-
LSM 트리 기반, 쓰기 집중 워크로드에 최적화
-
MVCC(멀티버전 동시성 제어), lock-free 데이터 구조로 주요 경로 무잠금 처리
-
WAL 로깅: 트랜잭션 전체 상태 기록 및 복구 지원
-
버전 인식 skip list로 인메모리 MVCC 가속
-
스레드 세이프/락프리 쓰기 및 아토믹 캐시/메모리 관리
-
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 특화: 네트워크/복제 오버헤드 없이 즉시 일관성/내구성/고성능 구현
- 트랜잭션 복구, 미완료 상태 유지 등 신뢰성과 투명성 높음
-
다양한 컴팩션/버퍼/캐시 파라미터를 통해 워크로드별 맞춤형 튜닝 가능