Show HN: TidesDB – Fast, transactional storage optimized for flash and RAM
4 months ago
- #key-value-store
- #LSM-tree
- #database-library
- TidesDB是一个用C语言编写的高效键值存储引擎库,基于LSM树结构设计。
- 支持ACID事务,提供读已提交隔离级别和按列族序列化的写入器。
- 非阻塞操作:写入器不阻塞读取器,读取器之间互不干扰。
- 隔离的键值存储空间,每个列族可单独配置。
- 支持基于堆合并排序的双向迭代器,提供高效查找操作(O(log n)复杂度)。
- 通过预写日志(WAL)保证数据持久性,启动时自动恢复。
- 可选功能:后台压缩、布隆过滤器、多种压缩算法(Snappy/LZ4/ZSTD)、TTL过期机制、自定义比较器。
- 两种同步模式:NONE(最快)和FULL(最持久)。
- 可针对每个列族单独配置内存表大小、压缩策略、布隆过滤器等参数。
- 提供简洁的C语言API,支持Linux/macOS/Windows跨平台运行。
- 可选简洁字典树(succinct trie)块索引,在降低内存占用的同时加速sstable查找。
- 通过逻辑删除标记实现高效删除,可配置LRU缓存管理打开的文件句柄。
- 采用线程池处理后台刷盘和压缩任务。
- 采用Mozilla公共许可证2.0版,依赖项遵循BSD和Apache 2.0许可证。