近日,Github开源了一个数据库。在自述文件中,它将自己比??作“用于键值存储的ZFS”。Graviton数据库是一个简单、快速、版本化、经过身份验证、可嵌入的键值存储数据库。简而言之,Graviton数据库类似于“用于键值存储的ZFS”,其中每个写入操作都被跟踪、版本化并使用加密证明进行身份验证。此外,您还可以对数据库进行快照。即使在实时更新期间,也可以使用简单的复制、rsync命令执行数据库备份,而不会导致数据库损坏。目前,Graviton数据库仍处于预览版。目前,几乎全单元测试覆盖和随机黑盒测试用于保证数据库一致性和线程安全。该项目已经具有100%的代码覆盖率。许多决策,如更改、重命名API、处理错误、哈希算法等,都在评估过程中,并愿意接受改进和建议。以下是它的自述文件中提到的一些重要特性:经过身份验证的数据存储(所有键、值由blake256位校验和支持)。仅附加数据存储。在单个数据存储中支持2^64棵树(理论上)。支持价值版本跟踪。所有已提交的更改都已进行版本控制,并且可以随时访问。快照(单次发布多树提交,导致多桶同步,每个快照都可以被访问,追加和进一步修改,键删除,值修改等,新的键,值存储。)遍历树中的所有键值对。能够在线性时间内区分两棵树,并报告插入、删除、修改的所有变化。最小和简化的API。理论上支持EB级数据存储,内部测试数TB。解耦存储层,允许使用对象存储,如Ceph、AWS等。能够生成密码证明,可以证明密钥的存在或不存在(一个密码证明大约1KB。)超快速证明生成时间,每个内核每秒大约1000个证明。支持基于磁盘的基于文件系统的持久存储。支持基于内存的非持久化存储。100%的代码覆盖率。与其他数据库比较时,readme中提到GravitonDB是唯一提供实时的。此外,目前GravitonDB是唯一可以在线性时间内区分两棵树的数据库。
