Dqlite 1.0 是 Canonical 推出的 SQLite 分布式版本

规范公司 опубликовала 重大项目发布 迪尔莱特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

添加评论