Show HN: SNKV – SQLite의 B-트리를 키-값 저장소로 활용 (C/C++ 및 Python 바인딩)
발행: (2026년 2월 24일 오후 09:59 GMT+9)
2 분 소요
원문: Hacker News
Source: Hacker News
아키텍처
SQLite는 여섯 개의 계층으로 구성됩니다: SQL 파서 → 쿼리 플래너 → VDBE → B-트리 → 페이저 → OS
(SQLite 아키텍처).
키‑값 워크로드에서는 하위 세 계층만 필요합니다. SNKV는 상위 세 계층을 제거하고 SQLite의 B‑트리 엔진에 직접 접근합니다. SQL 문자열도, 쿼리 플래너도, VM도 없이—SQLite를 구동하는 동일한 저장소 코어에서 put/get/delete만 수행합니다.
Python
pip install snkv
from snkv import KVStore
with KVStore("mydb.db") as db:
db["hello"] = "world"
print(db["hello"]) # b"world"
C / C++
#define SNKV_IMPLEMENTATION
#include "snkv.h"
KVStore *db;
kvstore_open("mydb.db", &db, KVSTORE_JOURNAL_WAL);
kvstore_put(db, "key", 3, "value", 5);
성능 (상대적 향상)
| 작업 | 향상 |
|---|---|
| 순차 쓰기 | +57% |
| 랜덤 읽기 | +68% |
| 순차 스캔 | +90% |
| 랜덤 업데이트 | +72% |
| 랜덤 삭제 | +104% |
| 존재 여부 확인 | +75% |
| 혼합 워크로드 | +84% |
| 대량 삽입 | +10% |
제공되는 기능
- ACID 보장
- WAL 동시성
- 컬럼 패밀리
- 충돌 복구
읽기‑중심 키‑값 워크로드에 대해 오버헤드가 적은 모든 기능을 제공합니다.
댓글: (32점, 19댓글)