开源、无限可扩展的关系数据库管理系统 (RDBMS)

目前还没有读者喜欢这篇文章。
open network

Opensource.com

InfiniSQL 是一个大规模可扩展的关系数据库系统 (RDBMS),完全从头开始编写(并非基于其他技术构建)。InfiniSQL 的博客上描述了可重现的基准测试数据,证明它可以每秒执行超过 500,000 次复杂的、多节点事务,同时处理超过 100,000 个并发事务——所有这些都仅在 12 个小型服务器节点上完成。

12 个节点的限制是预算问题:这是一个完全自费的开源项目,不属于任何机构。如果我有权访问更多服务器,我确信可扩展性会更高。但这些细节都在博客上。最重要的是,这是一个非常高性能的系统,而且还处于起步阶段。

唯一与 InfiniSQL 远程相似的开源软件是 MySQL Cluster。我认为,对于许多操作,尤其是包含多个节点上记录的事务,InfiniSQL 的扩展性和性能都优于 MySQL Cluster。但是,我没有对 InfiniSQL 和 MySQL Cluster 进行直接的同类比较,并欢迎任何这方面的数据。如果时间允许,我可能会在不久的将来进行此类基准测试。本文的目的不是贬低 MySQL Cluster(或任何其他产品),而是解释 InfiniSQL 的优势以及它的独特之处。

我是一位资深的 Linux 用户。我的第一个发行版来自 SoftLanding Systems 公司,装在 30 多张 1.44MB 软盘中。Linux 内核版本是 0.99 左右,我将其加载到我的米色 80386 系统中,该系统配备了 4MB 内存。我不得不摆弄 /usr/X11R6/etc/Xconfig 来让我的显示器提供图形界面(而且,我差点把它烧坏了)。这就是我的资历。我担任系统管理员多年。最近,在 Visa 公司工作。

在那里,我担任他们在线部门 CyberSource 的容量规划师和性能工程师。我曾为超高容量、24x7 全天候、任务关键型环境进行架构设计、配置、维护和故障排除,在这种环境中,每的停机都意味着我们的客户损失数千美元的收入。任何熟悉复杂环境的人都知道,最大的痛点通常来自处理事务和报告工作负载的后端数据库系统。传统的数据库系统存在非常严重的架构缺陷,使其几乎不可能扩展到单个服务器之外;使其持续可用非常困难且昂贵。

我觉得我可以做得更好。

我开始将 InfiniSQL 设计为一个开源项目,因为 我相信它将获得最多的用户,吸引最优秀的开发人员,并随着时间的推移发展出成为首选 RDBMS 的能力和特性,供那些目前仅使用大型、昂贵且专有系统的人们使用。Linux 就是这样发展壮大,取代了在昂贵服务器上运行的专有操作系统。

最终不得不在全职、舒适的工作和追随我的热情之间做出选择,并且在 2013 年 3 月,我辞去了在 Visa 的工作。我只是在几天前才开始告诉最亲密的朋友圈子以外的人,因为直到现在,该项目还处于不适合消费的状态(但它仍处于 alpha 阶段)。正如 Eric Raymond 所说,“尽早发布,经常发布。” 

有一些闭源公司拥有类似于 InfiniSQL 的功能,因此在许多方面可以与之媲美,但在其他方面又优于这些产品。InfiniSQL 的开发也没有那么深入。类似的闭源产品已经获得了数亿美元的资金,使其能够雇用更多的人。InfiniSQL 的用例主要用于高容量数据收集、分析和事务处理。如果您的环境混合使用了 SQL 和 NoSQL,那么 InfiniSQL 很可能可以用于这两种类型的工作负载。这是因为 InfiniSQL 的性能类似于许多快速 NoSQL 系统,但仍然可以使用 SQL 并执行事务处理,这与 NoSQL 不同。事实上,InfiniSQL 使用 PostgreSQL 前端/后端协议(PostgreSQL 客户端驱动程序可以与 InfiniSQL 一起使用),因为 开源的美妙之处在于允许我在 InfiniSQL 中使用他们的开放协议。这为我节省了编写功能齐全、成熟且跨平台的客户端驱动程序的时间。

我现在的目标是尽可能多地告诉人们关于 InfiniSQL 的信息,并邀请他们以任何他们希望的方式学习和参与。我正在寻找共同开发者(C++ 和 Python)以及愿意下载和测试它的人。有超过 100 页的文档,包括关于如何配置 Linux x86-64 环境以及构建、运行和测试 InfiniSQL 的指南。 InfiniSQL 也是完全从头开始编写的,它不是基于其他产品,无论是开源的还是专有的。已经有超过 35,000 行代码,而这仅仅是个开始。

 

标签
User profile image.
我是一位资深的 Linux 用户和 IT 专业人士。我的职业生涯很大程度上源于多年前我以爱好方式使用 Linux 时学到的计算机知识。我的职业生涯大部分时间都在超高容量、任务关键型事务处理环境中度过。我希望帮助继续将开源软件引入目前依赖闭源系统的地方的传统。

7 条评论

文章作者需要更好地解释他在声明“唯一与 InfiniSQL 远程相似的开源软件是 MySQL Cluster”中“确切地”指的是什么——特别是关于“相似”一词的使用。

如果他指的是 SQL 数据库集群的可靠性和可扩展性,那么 PostGreSQL 是一款世界闻名且备受推崇的自由/开源软件 (FOSS) RDBMS,在来自 Yahoo、富士通、NASA、Verisign、Netflix 和许多其他企业实体的文档报告中,它已实现“创纪录”的事务可扩展性。在某些受控测试中,PostGreSQL 在 Fortune 100 强公司的相同操作和工作负载中,其性能优于最新的 Oracle Database 11。

作者是否“广泛”评估和测试了 PostGreSQL 与 InfiniSQL 和/或 MySQL 相比的性能?

虽然这样的比较评估项目不一定会减损 InfiniSQL 的任何伟大特性和价值,但它让人质疑作者在集群、可扩展 RDBMS 或任何高端数据库技术领域的整体“专家”技术判断和知识(或缺乏)。

PostgreSQL 不进行水平扩展。文章的第一段描述了 InfiniSQL 在这方面可以实现的目标:“InfiniSQL 的博客上描述了可重现的基准测试数据,证明它可以每秒执行超过 500,000 次复杂的、多节点事务,同时处理超过 100,000 个并发事务——所有这些都仅在 12 个小型服务器节点上完成。”

如果您想了解这些术语的含义,我可以进一步澄清。请通过 http://www.infinisql.org/community/ 网页上的表格与我联系。

我认为 PostgreSQL 是一个很棒的项目,我钦佩他们的工程师。他们只是没有一个可以水平扩展的产品。

也许你可以/应该使 iDB 成为一个贡献模块,这将使 pg 水平扩展,因为对于一个拥有数万粉丝/爱好者/顾问的“杀手级”产品来说,有更大的潜力。除非在做“你自己的事情”时,除了可扩展性之外,你还捕获了所有其他功能,否则构建一个更好的 pg 将需要很长时间。

嗨,Peter。我已经考虑过您的建议,并在 FAQ 中描述了我的意见:http://www.infinisql.org/docs/faq/
我欢迎任何对 InfiniSQL 的贡献!

持久性是如何处理的?那里的计划是什么?是像 Redis 那样进行偶尔的刷新,还是完全持久的系统?ACID 的其余部分呢?

这个问题的答案在文档部分。它写得很好,不太长,而且读起来实际上很愉快。

谢谢你,Unidentified,感谢你的好评。您提到的部分位于 http://www.infinisql.org/docs/overview/ 的“数据存储”标题下。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 3.0 Unported License 获得许可。
© . All rights reserved.