ActorDB:分布式数据库的另一种视角

目前还没有读者喜欢这个。
A sprout in a forest

Opensource.com

我在 Percona Live 数据性能大会上的演讲主题是 ActorDB:分布式数据库的另一种视角。 ActorDB 是一个开源数据库,它使用分布式模型开发:它使用 SQL 数据库,并采用 MySQL 客户端/服务器协议。它具有一系列功能,包括:

  • 强一致性(非最终一致性)
  • 无单点故障
  • ACID 兼容性
  • 使用 Raft 分布式共识进行复制
  • SQLite 基于 LMDB 作为存储引擎
  • 可扩展性至大量节点

我是斯洛文尼亚一家名为 Biokoda 的私营公司的联合创始人。我们的客户范围从小型公司到电信公司,他们向其客户和政府机构提供我们的解决方案。我们的产品试图解决的需求始终包括高可用性、易于管理、易于扩展和自托管。

几年前,我们的任务是构建一个文件同步应用程序。这要求应用程序为每个用户存储可能非常大的文件层次结构。在选择数据库时,我们的选项是键值存储、传统 SQL 数据库和文档存储(当时的文档存储远不如现在成熟)。

设计一个理想地适合我们的用例和需求的数据库变成了一个有趣的工程挑战。然后编写它也变成了一个有趣的工程挑战。当然,坚持使用现有的成熟 SQL 数据库会更安全、更容易,但我是一个永远的工程乐观主义者。有时,如果你相信它,就必须抓住疯狂的机会!

最大的担忧,而且理所当然,是安全性。分布式数据库的开发人员可能会陷入许多陷阱。最基本的问题是:共识算法是什么?它是否被正确实现并经过彻底测试?存储引擎是什么?它是定制构建的吗?如果是,它的可靠性测试得如何?正确实现它的优势在于提供了一种在没有单点故障的情况下存储状态的方法。这是一种根据您的需求水平扩展数据库的方法。如果您的数据库是您产品的一部分,那么这些事情将成为您产品的重要卖点。

在性能方面,分布式数据库往往在单节点基础上处于劣势。但是,由于它们可以扩展到更多节点,因此它们可以实现高一个数量级的性能。我们试图做的是尽可能将 ActorDB 建立在坚实、经过验证的基础之上。我们避免开发自己的存储和 SQL 引擎,而是基于现有的成熟技术。我们甚至避免开发自己的客户端协议和库。

有关 ActorDB 的更多信息,请访问该项目的网站,或访问他们的 GitHub 仓库,您可以在那里根据 Mozilla Public License 2.0 版 下载源代码。

要观看我的演讲,请注册 Percona Live 数据性能大会 2016。使用代码 “FeaturedTalk” 即可获得 100 美元的注册费折扣。

User profile image.
2008 年联合创立 Biokoda d.o.o.。多个大型项目的首席开发人员。最初从事视频流媒体,这促使开发了流媒体服务器和实时视频转码网格。下一个主要项目是基于云的文件同步应用程序。将文件同步扩展到许多用户的问题导致了 ActorDB 分布式 SQL 数据库的想法。主要使用 Erlang 和 C 工作。

1 条评论

绝对是一个有趣的进展,我认为值得关注。SQLite 和 LMDB 是经过验证的技术,这应该更容易说服采用者。节点是如何被发现/添加的?网络堆栈是什么?

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.