使用数据库视图的主要优点:
我在Percona Live Data Performance Conference上的演讲被称为ActorDB:分布式数据库的替代视图 。 ActorDB是使用分布式模型开发的开源数据库:它使用SQL数据库,该数据库使用MySQL客户端/服务器协议。 它具有一组功能,包括:
- 强一致性(终一致性)
- 没有单点故障
- 符合ACID
- 使用Raft分布式共识进行复制
- SQLite的之上LMDB作为存储引擎
- 可扩展到大量节点
我是斯洛文尼亚一家名为Biokoda的私人公司的联合创始人。 我们的客户范围从小型公司到电信公司,这些公司向其客户和政府机构提供我们的解决方案。 我们的产品试图解决的要求始终包括高可用性,易于管理,易于扩展和自托管。
几年前,我们的任务是构建文件同步应用程序。 这要求应用程序为每个用户存储可能非常大的文件层次结构。 在选择数据库时,我们的选择是键值存储,传统SQL数据库和文档存储(与现在相比,它们不那么成熟)。
设计一个非常适合我们的用例和需求的数据库成为一项有趣的工程挑战。 然后编写它成为一个有趣的工程挑战。 当然,坚持使用现有的成熟SQL数据库会更安全,更轻松,但是我是一位永恒的工程学家。 有时候,如果您相信这一点,就必须抓住一个疯狂的机会!
安全性是大的问题,理所当然的。 分布式数据库的开发人员可能会遇到很多陷阱。 基本的问题是:什么是共识算法,它正确实施并经过彻底测试? 什么是存储引擎,是定制构建的吗? 如果是,其可靠性测试如何? 正确处理它的优点是一种存储状态而没有单点故障的方法。 这是一种根据需要水平扩展数据库的方法。 如果数据库是产品的一部分,那么这些东西将成为产品的重要卖点。
在性能方面,分布式数据库往往会丢失每个节点。 但是,由于它们可以扩展到更多节点,因此可以将性能提高一个数量级。 我们试图做的是使ActorDB建立在尽可能可靠的基础上。 我们避免开发自己的存储和SQL引擎,而是基于现有的成熟技术。 我们甚至避免开发自己的客户端协议和库。