LightDBKey-Value 数据库

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

LightDB 是一个 Key-Value 数据库,该项目由三个部分构成。

Lightdb.lib 对 rocksdb 做了一层封装,主要的修改是追加了保存的数据类型,和表的概念。

https://github.com/NewEconoLab/lightdb.lib

Lightdb.server 是一个远程数据库,Lightdb 的服务器版本。

https://github.com/NewEconoLab/lightdb.server

Lightdb.SDK 是方便客户端接入 LightdbServer 提供的,目前只提供了 C# 版本实现,后续还会提供 Typescript 版本实现,通讯协议比较简单,任意支持 Websocket 的方案都可以连接。

https://github.com/NewEconoLab/lightdb.sdk

项目特点

  1. 追加了数据类型和表概念

  2. 有服务器,采用 Websocket 通讯,对 JS 友好

  3. 数据的存储以 taskblock 为单位,方便数据库互相验证和同步

最重要的特点是还有一个关于读的快照 Snapshot。快照的需求来源是数据处理的事务化,或者说一批操作的原子性要求。

传统数据库一定程度支持事务化,而 Key Value 数据库这边支持事务化的程度就更差一些。

而 NEO 使用的嵌入式数据库,LevelDB 因为采用 LSM 存储方式,提供读取的 snapshot 非常容易,代价也小。

这也就造成了在 NEO 的实现中,存储部分对 Snapshot 的依赖非常强。

浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报