开源实时数据库
数据库世界对开源并不陌生。 实际上,许多世界顶级公司,项目和网站都在幕后运行各种开源数据库。
因为数据库的选择对可伸缩性,性能以及如何查询数据本身具有巨大的影响,所以有很多选择可以满足各种潜在需求。 RethinkDB是一个开放源数据库,其特定目的是:向实时应用程序提供数据,无论这些应用程序是视频游戏后端,财务工具还是分析套件。
要了解有关RethinkDB的更多信息,我们了解了Slava Akhmechet。 Akhmechet是RethinkDB的创始人,该公司与开源项目同名。 在创建RethinkDB之前,他是金融行业的系统工程师,致力于扩展自定义数据库系统。 他目前是石溪大学计算神经科学专业休假的博士研究生。
告诉我们一些有关RethinkDB的信息。 它是什么? 它与其他开源数据库系统有何不同?
RethinkDB是第一个针对实时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版后)将支持更复杂的实时推送功能(例如,我们正在开发可重新启动的Feed ),更好的高可用性和自动故障转移支持(通过我们正在测试的新Raft实施)以及更多的部署选项(例如Windows支持)。
谁在致力于RethinkDB? 支持来自哪里,您看到了哪些有趣的用例?
RethinkDB是由风险投资提供的,因此我们有一个由15个人组成的团队,全职从事产品开发。 但是,我们认为自己是该项目的贡献者,而且碰巧得到了报酬。 除了核心团队之外,RethinkDB还拥有来自世界各地的一百多名贡献者。 这些贡献来自业余爱好者,学生和我们的许多客户。 人们为文档,生态系统集成项目做出贡献,以使RethinkDB与各种软件,适用于多种不同编程语言的客户端驱动程序无缝协作,甚至对核心数据库内部进行改进。
大多数用例都集中在现代市场,流分析应用程序,多人游戏以及协作性Web和移动应用程序上。 本质上,任何时候只要有人为网络构建任何东西并想要实时功能,RethinkDB都是一个非常好的数据库选择。
人们如何才能了解有关RethinkDB的更多信息并参与该项目?
最好的方法是访问项目网站 。 那里有很多信息,包括教程,文档,技术视频和示例应用程序。 我们在Twitter和IRC(freenode上的#rethinkdb)上也非常活跃,因此,如果有人有问题,他们可以在几分钟之内得到答案。
翻译自: https://opensource.com/business/15/2/interview-slava-akhmechet-rethinkdb
开源实时数据库