TidesDB

TidesDB
软件
软件描述
TidesDB 是一个用 C 语言编写的快速且高效的键值存储引擎库,其底层数据结构基于日志结构合并树(LSM-tree)。
官方网站
访问软件的官方网站了解更多信息
tidesdb.com
什么是 TidesDB?
TidesDB 是一个用 C 语言编写的快速且高效的键值存储引擎库。其底层数据结构基于日志结构合并树(LSM-tree)。
它不是一个功能完整的数据库,而是一个可用来构建完整数据库的库。
特性:
支持多个线程并发读写存储引擎。跳表使用读写锁,支持多个读取线程和一个真正的写入线程。SSTables 是排序的、不可变的,可被并发读取,通过页锁进行保护。事务也是线程安全的。
列族将数据存储在独立的键值存储中。每个列族都有自己的内存表(memtable)和 SSTables。
原子事务可以原子地提交或回滚多个操作。如果其中一个操作失败,则回滚所有操作。
游标可向前或向后遍历键值对。
WAL(写前日志)机制保证持久性。当操作被追加时,一旦被持久化到 SSTable 中,也会在特定点被截断。
多线程合并支持手动多线程配对和合并 SSTables。例如,运行时对 10 个 SSTables 进行合并,最终会合并为 5 个,其配对并合并。每个线程负责一个配对,你可以设置用于合并的线程数量。
后台刷新:内存表的刷新操作会被加入队列,并在后台执行刷新。
链式布隆过滤器(Chained Bloom Filters)通过读取 SSTables 的初始页面来检查键是否存在,从而减少磁盘读取。布隆过滤器随着 SSTable 大小的增加,通过链式和链接方式扩展。
使用 Zstandard 压缩算法进行压缩。SSTable 条目和 WAL 条目均可进行压缩。
支持键值对的 TTL(生存时间)功能。
可配置:引擎和列族的许多选项均可配置。
错误处理:API 函数返回错误码和错误信息。
简单易用的 API:API 简洁且易于使用。