Show HN: SNKV – SQLite 的 B 树作为键值存储(C/C++ 和 Python 绑定)

发布: (2026年2月24日 GMT+8 20:59)
2 分钟阅读

Source: Hacker News

架构

SQLite 有六层:SQL 解析器 → 查询规划器 → VDBE → B‑tree → pager → OS
SQLite 架构)。

对于键值工作负载,你只需要底部的三层。SNKV 剔除顶部三层,直接与 SQLite 的 B‑tree 引擎交互。没有 SQL 字符串、没有查询规划器、没有虚拟机——只是在驱动 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 points, 19 comments)

0 浏览
Back to Blog

相关文章

阅读更多 »