Dorea DB 🛰

Build GitHub Code

Dorea 是一款 Key - Value 数据存储系统。它基于 Bitcask 存储模型实现!

文档 | Crates.io | Core 文档

简体中文 | English

功能

数据类型

Dorea 将会实现基本的数据类型与复合类型:

存储模型

Dorea 基于 Bitcask 存储模型实现,bitcask 是一种 日志型 的存储模型。

所有 添加、更新、删除 操作都是以追加的方式实现的。

key: foo | value: "bar" | timestamp: 1626470590043 # 插入了一条新的数据 key: foo | value: "new" | timestamp: 1626470590043 # 更新了数据(不会删除上面的插入) key: foo | value: none | timestamp: 1626470590043 # 删除了数据(也不会影响到上面的插入与更新)

当一个存储文件到达一个最大容量时,则将其归档,并新建一个写入文件。

索引加载

Bitcask 中,索引会被一次性全部加载到内存中。

但是在 Dorea 中,你需要配置默认自动加载的 Group ,当有程序切换 Group 时,才去加载相应的索引。

*PS: * 在数据量不大(< 100w)时,这种加载的时间成本都是可以忽略不计的。

Merge 操作

程序会每隔一段时间对已归档的文件进行整理(将多余的数据删除),让其只保存最后一次的操作信息。

Core API

Dorea-core 开放了部分内部功能供开发者调用。

部分截图