实时应用开源数据库

还没有读者喜欢这篇文章。
A network of people

Opensource.com

数据库领域对开源并不陌生。事实上,世界上许多顶级公司、项目和网站都在幕后运行着各种开源数据库。

由于数据库的选择对可扩展性、性能以及数据本身的查询方式具有重大影响,因此有许多选项可以满足各种潜在需求。 RethinkDB 是一款开源数据库,具有特定用途:为实时应用程序提供数据,无论这些应用程序是视频游戏后端、金融工具还是分析套件。

为了更多地了解 RethinkDB,我们采访了 Slava Akhmechet。 Akhmechet 是 RethinkDB 的创始人,该公司与开源项目同名。在创立 RethinkDB 之前,他曾在金融行业担任系统工程师,负责扩展定制数据库系统。他目前是石溪大学计算神经科学专业的休学博士生。

Q&A

请您简单介绍一下 RethinkDB。它是什么?它与其他开源数据库系统有何不同?

RethinkDB 是首个从零开始为实时 Web 设计的开源、可扩展数据库。

传统数据库使用查询-响应数据库访问模型。这在 Web 上运行良好,因为它直接映射到 HTTP 的请求-响应。然而,现代市场、流式分析应用、多人游戏以及协作式 Web 和移动应用需要将数据直接实时发送到客户端。例如,当用户在协作设计应用中更改按钮的位置时,服务器必须通知同时处理同一项目的其他用户。Web 浏览器通过 WebSockets 和长期 HTTP 连接支持这些用例,但使数据库系统适应实时需求仍然是一项巨大的工程挑战。

RethinkDB 是首个使用令人兴奋的全新数据库访问模型的数据库——开发人员无需轮询数据库以查找更改,而是可以告诉 RethinkDB 持续将更新的查询结果实时推送到应用程序。这使得构建现代实时应用变得异常简单——开发人员可以在更少的时间和更少的工程资源下,快速启动并运行可扩展的实时 Web 应用程序。

对您来说,为什么对这个项目采用开源许可证如此重要?

我们认为世界正在朝着更多的实时应用和实时体验发展,因此第一个正确处理此问题的数据库产品将在未来许多年成为大多数技术堆栈非常重要的组成部分。我们认为,像这样的核心技术对每个人都开放非常重要,这样就不会有人被落下——学生、爱好者、初创公司以及发展中国家的公司不一定能为产品和服务支付巨额资金。开源是实现这一目标的最佳途径。每个人都可以访问该技术,而 RethinkDB 可以通过向对价格不太敏感的大型组织销售增值服务来蓬勃发展。

用户/开发人员可能会使用哪些标准来决定哪种类型的数据库技术最适合他们尝试创建的项目或应用程序?

这非常复杂——现在有很多选择,并且许多不同的用例需要在数据库产品中进行不同的权衡。在 RethinkDB 之前,当我为我的工作选择数据库时,我查看了三个类别——用例、可扩展性和成熟度。

许多用例仍然需要 ACID 事务(例如,金融应用程序)。这项技术仅在传统 RDBMS 中可用,因此对于这些用例,我会选择 MySQL 或 Postgres。其他用例更多地是分析驱动的,因此我会选择像 Vertica 这样的列式数据库。还有更多用例(适用于现代 Web 应用、移动应用和游戏)需要灵活的数据模型,因此我选择了 NoSQL 系统(如 MongoDB 和 Redis)。

对于需要非常高规模的项目,我会选择 HBase、Cassandra 和(对于较低规模)MongoDB。

最后,对于受监管的行业(例如 HIPAA 合规性、财务审计等),Oracle 仍然是至高无上的,因为它具有最成熟的监管功能。

在过去的两年中,我们注意到实时用例的出现,这就是 RethinkDB 的用武之地。对于构建实时应用程序的开发人员,我们希望 RethinkDB 成为市场上最好的产品。

路线图上有什么?开发团队希望在未来添加哪些功能?

RethinkDB 已经开发了五年多,因此它已经非常成熟。我们将在未来几周内发布 RethinkDB 2.0——它将是一个稳定性版本,可以用于生产环境,并提供商业服务产品,以帮助我们的客户充分利用该产品。

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

谁在为 RethinkDB 贡献代码?支持来自哪里?您看到了哪些有趣的用例?

RethinkDB 是风险投资支持的,因此我们有一个由 15 人组成的团队全职从事该产品。但是,我们认为自己是项目的贡献者,恰好获得了报酬。除了核心团队之外,RethinkDB 还有来自世界各地的 100 多名贡献者。贡献来自爱好者、学生和我们的许多客户。人们为文档、生态系统集成项目做出贡献,以使 RethinkDB 与其他软件无缝协作、为许多不同的编程语言提供客户端驱动程序,甚至改进核心数据库内部结构。

大多数用例都围绕现代市场、流式分析应用、多人游戏以及协作式 Web 和移动应用。本质上,任何时候有人为 Web 构建任何东西并想要实时功能时,RethinkDB 都是一个非常好的数据库选择。

人们如何了解更多关于 RethinkDB 的信息并参与到项目中来?

最好的方法是访问项目网站。那里有大量信息,包括教程、文档、技术视频和示例应用程序。我们在 Twitter 和 IRC (#rethinkdb on freenode) 上也非常活跃,因此如果有人有问题,他们可以在几分钟内得到答案。

标签
User profile image.
Jason 是 Opensource.com 的员工和红帽员工,任职时间为 2013 年至 2022 年。此个人资料包含他在该期间与工作相关的文章。其他贡献可以在他的个人帐户中找到。

评论已关闭。

© . All rights reserved.