Show HN: SNKV – SQLite의 B-트리를 키-값 저장소로 활용 (C/C++ 및 Python 바인딩)

발행: (2026년 2월 24일 오후 09:59 GMT+9)
2 분 소요

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댓글)

0 조회
Back to Blog

관련 글

더 보기 »