面向文档的内存数据库-CursusDB
2024-01-23 10:21:04 阿炯

CursusDB 是一种面向文档的快速开源内存数据库,提供安全性、持久性、分布性、可用性和类似 SQL 的查询语言。采用Go语言开发并在GPLv3协议下授权。


CursusDB is a fast open source in-memory document oriented database offering security, persistence, distribution, availability and an SQL like query language(CDQL).

CursusDB 的设想是创建无限可扩展的东西,同时又不会真正减慢速度。假设有 10 亿个文档存储在分布在 100 个节点的 1 个集合中,当集群同时在所有节点上启动非插入操作时,集群将在查询 1000 万个文档所需的时间内查询 10 亿个文档。这就是并行搜索的力量。

Cursus 系统可同时在用户集合的多个部分中进行搜索。一个集群可以同时查询数千个节点。将主节点视为多个或一个集合的碎片。每个集合都会锁定插入、更新和删除,但由于其分布式设计,它就像一个并发交换机,允许大量并发事务。一个集群或多个集群采取操作,这些操作作为请求同时转发到一个或多个节点。一致性和可靠性是设计 CursusDB 时的主要目标之一。

特性

使用共享密钥和 OR TLS 保护集群和节点通信
运行时内存中的数据
并行搜索,同时搜索多个节点内的集合部分
自动为所有节点生成唯一的所有文档的 $id 键
具有基本(R、RW)权限的数据库用户
集群和节点认证
专门针对读取的集群节点数据复制和同步
JSON 对象插入、非结构化集合
集群和客户端身份验证
节点(插入、更新、删除)实时转发给观察者
如果连接丢失,节点观察者自动重新连接
类似 SQL 的查询语言(CDQL - Cursus 文档查询语言)
低延迟、高可用、高度可配置
默认情况下使用共享密钥和用户确保安全
轻量级核心代码总共不到 6000 行代码
基于 log-max-lines 配置的文件日志记录和自动日志截断
自动重新连接任何丢失的节点或节点副本
如果 .curodeconfig 中的 automatic-backup 设置为 true,则自动备份节点
如果 .curodeconfig 中的 automatic-backup-cleanup 设置为 true,则自动清理节点备份。
如果配置了自动备份,则在数据损坏时自动恢复节点
节点数据 (.cdat) 和节点备份 (/backups/.cdat.{unixtime}) 是在关机或备份时通过序列化 - 加密 (chacha20poly1305)- 压缩 (DEFLATE) 将内存中的数据序列化、加密并逐块压缩后创建的。


最新版本:2.3


官方主页:https://cursusdb.com/