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 行代码,而这仅仅是个开始。
7 条评论