RethinkDB:为实时应用而生的开源数据库

mgwd 9年前

RethinkDB:为实时应用而生的开源数据库

英文原文:An open source database for realtime applications

RethinkDB 是风险投资项目,一个开源数据库,团队里有 15 个全职工作队员。除了核心团队,RethinkDB 拥有来自世界各地的一百余名贡献者。也正是这样一个强大的后继贡献团队,使得 Rethink 能够完成开源大计。

数据库并不是开源世界里的陌生人。事实上,许多世界顶级企业、项目和网站在后台运行着各种开源数据库。由于数据库的选择在扩展、执行、以及数据本身被如何查询的方面有着巨大的影响,因此,在数据库的选择上就有许多选项来满足各种潜在需求。

RethinkDB 是一个具有特定目的的开源数据库:为实时的应用程序提供数据,无论这些应用程序是视频游戏的后端,金融工具还是分析套件。

为了了解更多关于 RethinkDB 的信息,我们联系到了 RethinkDB 公司的创始人 Slava Akhmechet。RethinkDB 是一个与开源项目具有相同名称的公司。在成立 RethinkDB 之前,他是一个金融业的系统工程师,致力于扩大自定义数据库系统。目前,他是 Stony Brook 大学神经科学程序项目博士生。

RethinkDB 是什么?它和其他开源数据库系统相比有什么不同?

RethinkDB 是自底向上为实时网页设计的第一个开源的、可扩展的数据库。传统数据库使用的是一种查询——响应数据库访问模式。RethinkDB 在网络上工作的很好主要是因为它直接映射到 HTTP 的请求响应上面。

然而,现代市场中流分析应用程序、多人游戏、协作网络和移动应用程序需要实时的直接将数据发送到客户端。例如,当用户改变一个协同设计的应用程 序的按钮的位置,服务器需要通知工作在同一个项目的其他用户。Web 浏览器通过 WebSockets 和长期 HTTP 连接来支持这些用例,但适应数据库系统的实时需求仍存在巨大的工程挑战。

RethinkDB 是第一个数据库使用了一种令人激动的新的数据库的访问模型,而不是轮询数据库更改,开发者可以命令 RethinkDB 实时的向应用连续推送更新查询结果。这使得搭建现代、实时的应用程序十分方便:开发者可以得到一个可扩展的实时 Web 应用程序的 App,并在用一小部分时间运行的同时使用更少的工程资源。

为什么这个项目使用开源许可证十分重要?

Slava Akhmechet 认为世界正朝着更加实时的应用和实时的体验方向前进,所以第一个数据库产品来获得这一权利将是技术堆栈里非常重要的一部分。“我们认 为对像这样的核心技术来说十分重要的是每个人都可以访问,这样没有人会落下——学生、爱好者、创业者和发展中国家的公司,可以不必支付大笔的产品和服务费 用。而开源是实现这一目标的最佳工具。

每个人都可以接触到技术,并且 RethinkDB 可以通过向对价格不敏感的大型企业销售增值服务发展起来。

什么是用户或开发人员用来解决数据库技术的标准?

其实这是一个相当复杂的过程,最近就有很多这样的问题摆在那里,并且在很多不同的使用情况下需要在不同数据库产品之间权衡利弊。”在开发 RethinkDB 之前,我为工作内容选择数据库,我会关注三方面的因素:使用情况、可扩展性和成熟度。“Akhmechet 解释说。

许多案例仍然需要 ACID 事务。该技术仅在传统的 RDBMS 中可用,所以对于那些方向我会选择 MySQL 或 Postgres。其他的案例是受分析的影响,所以我会选择像 Vertica 的一个列状数据库。

然而,更多的情况下,例如现代 Web 应用、移动应用程序和游戏等等,都需要灵活的数据模型,所以选择了 NoSQL 系统,如 MongoDB 的和 Redis。对于要求很高的大型项目,研发团队会选择 HBase、Cassandra 和 MongoDB。

最后,对于管制行业,如 HIPAA 合规性,财务审计等等,Oracle 仍然居于主导地位,因为它拥有最成熟的监管功能。在过去的两年中,我们看到了实时应用案例的出现,那是 RethinkDB 适用的地方。对于开发人员构建实时应用程序,我们希望 RethinkDB 是成为目前市场上最好的产品。

开发团队未来会在 RethinkDB 上添加哪些功能?

RethinkDB 已经开发了五年多,所以它们相当成熟。我们将会在未来几周发布 RethinkDB 2.0,这将是一个很稳定的版本,伴随着商业服务以帮助我们的客户尽可能获得产品之外的东西。

RethinkDB 2.0 后还有很多令人兴奋的工作需要去做。即将发布的 2.0 版本将支持更为复杂的实时推送功能,更好的可用性和自动故障转移支持(通过一个我们正在测试中的新的 Raft 实现),以及更多的部署选项(例如队 Windows 的支持)。

RethinkDB 是风险投资项目,有一个 15 人的团队对项目进行全职工作。除了核心团队,RethinkDB 拥有来自世界各地的一百余名贡献者。贡献来自业余爱好者、学生和平时的客户。人们向文档和软件生态系统的集成项目做出贡献,使 RethinkDB 在一些软件,许多不同的编程语言的客户端驱动程序,甚至核心数据库内部改进之间进行无缝工作。

大多数案例都围绕现代市场、流分析应用程序、多人游戏、协作网络和移动应用程序。从根本上讲,任何人在任何时候搭建网站上的任何东西,并希望实现实时功能,RethinkDB 都是一个非常好的数据库选择。

来自:http://news.cnblogs.com/n/517708/