Canonical宣布Dqlite的1.0版,Dqlite是SQL的C库

典范

上周 Canonical宣布发布Dqlite 1.0项目的主要版本, 您正在开发一个SQL引擎 内置SQLite兼容,通过跨多个节点支持数据复制,自动灾难恢复和容错能力。

Dqlite是一个C库 它实现了具有高可用性和自动故障转移功能的复制SQL数据库引擎。 首字母缩写词“ dqlite”代表“分布式SQLite”, 这意味着dqlite通过网络协议扩展了SQLite,该协议可以连接应用程序的多个实例,并使它们充当高可用性群集,而无需依赖外部数据库。

如之前提到 DBMS以附加到应用程序的C库的形式实现 并根据Apache 2.0许可进行分发(原始SQLite在公共领域中提供)。 该库是基于现有SQLite代码的插件, 它增加了网络协议支持,以链接在不同主机上运行的应用程序的多个实例。

使用Dqlite构建的应用程序可以用作故障转移群集 由于自主错误,独立于外部DBMS。

在实践中, Canonical在LXD容器管理系统中使用Dqlite。 在该库的应用领域中,还提到了在边缘计算系统中创建容错的物联网设备和处理器。

为了确保数据复制的一致性,使用了基于Raft算法的共识方法,该方法用于etcd,RethinkDB,CockroachDB和OpenDaylight等项目中。 Dqlite使用自己的异步C-raft实现,用C编写。

为了多路复用连接处理并组织协同程序的启动,使用了准备好的库libuv和libco。

与类似的rqlite项目相比,Dqlite提供了完整的交易支持,它可以与任何C项目进行通信,允许您使用time()函数,并使用基于框架的复制而不是基于SQL表达式翻译的复制。

在Dqlite中可以突出显示的功能包括:

  • 以异步模式执行所有磁盘和网络操作
  • 一组测试的存在,以确认数据的准确性
  • 低内存消耗和通过网络的高效数据交换
  • 永久数据库磁盘存储和事务日志(具有内存中缓存功能)
  • 故障后快速恢复
  • Go语言的稳定CLI客户端,可用于初始化数据库,配置复制以及连接/断开节点
  • 支持ARM,X86,POWER和IBM Z架构
  • 优化了Raft算法的实现,以最大程度地减少事务等待时间。
  • 使用libuv作为事件循环的异步单线程实现。
  • 针对SQLite原语和数据类型进行了优化的自定义线路协议。
  • 基于Raft算法的数据复制及其在C-raft中的高效实现。

如何在Ubuntu及其衍生产品上安装Dqlite?

Canonical提供了有关如何构建与Dqlite进行交互的客户端的信息,您可以查阅此信息。 在下面的链接中。

现在,关于在系统上安装库, 对于使用Ubuntu的用户,可以通过两种方式进行安装 或其任何其他派生词。 Canonical提供了PPA 从那里可以用相当简单的方式获得它。

可以从终端添加此PPA,并在其中执行以下命令:

sudo add-apt-repository ppa:dqlite/v1
sudo apt-get update
sudo apt-get install libdqlite-dev

安装此库的另一种方法是通过编译 这是在系统上进行的,因此对于Ubuntu和其他Linux发行版而言,这是更通用的方法。

为此,他们只需要打开一个终端并执行以下命令:

git clone --depth 100 https://github.com/canonical/sqlite.git
cd sqlite
./configure --enable-replication
make
sudo make install
cd ..
git clone https://github.com/canonical/libco.git
cd libco
make
sudo make install
cd ..
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..

一旦安装了所有必需的库,为了构建dqlite共享库,您可以运行:

autoreconf -i
./configure
make
sudo make install

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。