规范公司 опубликовала 重大项目发布 迪尔莱特1.0 (Distributed SQLite),开发了一个与 SQLite 兼容的嵌入式 SQL 引擎,通过跨多个节点分布处理程序来支持数据复制、故障自动恢复和容错。 DBMS 以附加到应用程序的 C 库的形式实现 分发者 根据 Apache 2.0 许可证(原始 SQLite 在公共领域提供)。 可用的语言绑定 Go.
该库是现有 SQLite 代码库的附加组件,它添加了网络协议支持,以互连在不同主机上运行的应用程序的多个实例。 使用 Dqlite 编译的应用程序可以充当自给自足的容错集群,独立于外部 DBMS。 在实践中,Canonical 在其容器管理系统中使用了 Dqlite LXD。 在该库的应用领域中,还提到了系统中容错物联网设备和处理器的创建
边缘- 计算.
为了保证数据复制的一致性,采用了基于算法的共识方法 筏,用于 etcd、RethinkDB、CockroachDB 和 OpenDaylight 等项目中。 Dqlite 使用自己的异步实现 工艺,用C语言编写。 使用现成的库来复用连接处理并组织协程的启动 库夫 и 利布科.
与类似项目相比 精简版Dqlite 提供完整的事务支持,可以与任何 C 项目通信,允许使用 time() 函数,并且使用基于帧的复制而不是基于 SQL 翻译的复制。
Dqlite 的特点:
- 异步执行所有磁盘和网络操作;
- 可用测试集来确认数据的正确性;
- 内存消耗低,通过网络进行高效的数据交换;
- 数据库和事务日志永久存储在磁盘上(可以在内存中缓存);
- 故障快速恢复;
- Go语言的稳定CLI客户端,可用于初始化数据库、配置复制以及连接/断开节点;
- 支持ARM、X86、POWER和IBM Z架构;
- Raft 算法的实现经过优化,可最大程度地减少提交事务时的延迟。
来源: opennet.ru