KISSDB最简单的 key/value 存储

联合创作 · 2023-10-01 01:11

(Keep It) 简单愚蠢的数据库


KISSDB 是一个最简单的 key/value 存储,使用纯 C 开发,只适用标准字符串和 FILE IO 函数。


特性:



  • Tiny, compiles to ~4k on an x86_64 Linux system

  • Small memory footprint (only caches hash tables)

  • Very space-efficient (on disk) if small hash tables are used

  • Makes a decent effort to be robust on power loss

  • Pretty respectably fast, especially given its simplicity

  • 64-bit, file size limit is 2^64 bytes

  • Ports to anything with a C compiler and stdlib/stdio

  • Public domain


限制:



  • Fixed-size keys and values, must recreate and copy to change any init size parameter

  • Add/update only, no delete

  • Iteration is supported but key order is undefined

  • No search for subsets of keys/values

  • No indexes

  • No transactions

  • No special recovery features if a database gets corrupted

  • No built-in thread-safety (guard it with a mutex in MT code)

  • No built-in caching of data (only hash tables are cached for lookup speed)

  • No endian-awareness (currently), so big-endian DBs won't read on little-endian machines

浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报