死而复生?RethinkDB宣布进入Linux基金会!

60023f8fb41ee6525ea7f5dd5709c0e6.png

\\

2016年10月5日,RethinkDB联合创始人Slava Akhmechet在官网上宣布RethinkDB破产倒闭。Slava Akhmechet称其已经尽了最大的努力,最终还是无法建立一个可持续的商业模式。接下来Stripe公司将接纳RethinkDB公司,RethinkDB工程师团队将加入到Stripe。在交接过程中RethinkDB公司下的RethinkDB和Horizon的开源项目不会关闭,这两个项目都将持续可用,rethinkdb.com和horizon.io网站上的一切都可正常访问。Slava Akhmechet也希望在广大社区贡献者的努力下,保持继续开放的开发进程。

\\

日前,RethinkDB项目有了新的动态。Cloud Native Computing基金会(CNCF)宣布它购买了NoSQL分布式文件存储数据库RethinkDB的源代码版权,将授权协议从Affero GPLv3改为Apache v2,并将其捐赠给Linux基金会

\\

目前,RethinkDB项目已经“死而复生”。

\\

RethinkDB虽然去年宣布破产倒闭,但是项目仍然得以存活,并且情况良好:RethinkDB项目仍然继续积极开发,并没有因破产而中断。用户可以继续在生产环境中使用RethinkDB。RethinkDB的官网、GitHub项目和社交媒体账户也如常运营。今天,在Linux基金会的支持下,该项目从此有了强大的制度支持及接受捐赠的能力。

\\

自从去年宣布倒闭后,社区成员表示愿意资助RethinkDB的后续开发。现在,RethinkDB已经做好接受捐款的准备,并妥善利用筹集来的资金。Stripe为此捐款了高达25,000美元。

\\

许多前RethinkDB员工目前为Stripe工作,他们帮助为世界各地的开发人员构建基础设施。这次公告让人相信项目在社区中是有未来的。

\\

RethinkDB是什么?

\\

RethinkDB最早是作为一个对SSD进行专门优化的MySQL存储引擎出现的,其特点在于对SSD的充分利用。而目前RethinkDB已经脱离MySQL成为一个独立的存储。RethinkDB是自底向上为实时网页设计的第一个开源的、分布式的、可扩展的数据库,具有强大的集群和自动故障转移功能。传统数据库使用的是一种查询——响应数据库访问模式。RethinkDB 在网络上工作的很好主要是因为它直接映射到 HTTP 的请求响应上面。

\\

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

\\

Cloud Native Computing基金会称,RethinkDB数据库被数以百计的创业公司、咨询公司和财富五百强企业使用,其中包括NASA、GM、Jive、Platzi、美国国防部、Distractify和 Matters Media。

\\

接下来会发生什么?

\\

如何定义RethinkDB的未来,社区将会作出一些重要的决定。他们今后将逐步开源更多的软件、内容、大量的艺术品(通过@annieruygt),以及核心团队在过去七年来开发的文档。他们也一直与CNCF商讨如何成为开始的项目

\\

RethinkDB新版本已经在准备阶段中:在过去几个月,志愿贡献者继续努力改进数据库。在接下来的几天里,RethinkDB 2.4将会发布。新版本包含了社区的改进及去年关闭前开发的功能。与此同时,提供了重要的bug修复的RethinkDB2.3.6也将会发布。

\\

在产品的路线图中,社区对RethinkDB 2.5有一些初步的计划。让代码更容易为新的捐助者拥有是一项高度优先事项。这涉及到重构,技术债务和遗留代码或功能将因此得以消除。2.5可能会有一些性能改进,提高硬耐久性(hard-durability)写入。

\\

谁参与其中?

\\

志愿临时领导团队由以下人员组成。\
前RethinkDB团队成员:Christina Keelan、Etienne Laurin、Sam Hughes;\\
社区成员:Marshall Cottrell、Ross Kukulinski、Chris Abrams、Matt Broadstone;\\
Cloud Native Computing基金会执行董事Dan Kohn;\\
Cloud Native Computing基金会TOC成员Bryan Cantrill。\\
RethinkDB创始人Mike Glukhovsky和Slava Akhmechet也参与其中,确保顺利过渡。

\\

为何那么久,才有新动态?

\\

去年公司倒闭时,RethinkDB项目的源码和其他资产,由债权人持有。虽然可以将源码分支赋予符合AGPL条款的新名称并继续开发,但是临时领导团队认为,为推进项目提供更坚实的基础,要确保权利,并采取更加宽松的许可证。于是,Cloud Native Computing基金会就加紧了谈判,代表社区购买了源码。

\\

由于交易的敏感性,使得谈判过程中难以与社区讨论具体细节。持续的沉寂对于确保成功完成交易,并为现有用户和贡献者提供尽可能多的连续性是必要的。今天,源码的权利已经正式由社区持有,RethinkDB凤凰涅槃,死而复生了。

\\

网络反响

\\

讨论一:关闭了好还是不好?

\\
  • 网友Redmega:他们没有如之前声称那样死掉,我很欣慰。很棒的思路! \\
  • 网友vilmidget38:我非常喜欢使用Rethink,希望看到它继续走下去。 \\
  • 网友Solon1:我认为他们还是关闭了好。有一个团体购买了源和许可证,然后将其作为BSD发行。他们与原公司没有联系。\

    143ad4a6fa410837160ce941ecb2f31b.png

    \\

讨论二:RethinkDB还是MongoDB?

\\
  • 网友FlukyS:RethinkDB有超强的伸缩性,它可以处理PB级数据。不过,依据配置,这会导致可用性上做出些妥协,但是在我看来,用户有者很大的掌控权。一致性是RethinkDB考虑最弱的一点。RethinkDB的超级赞的是很易用。我只在开发阶段使用RethinkDB,因为后来公司决定采用MongoDB。 \\
  • 网友read_eat_or:可否问下你们(FlukyS)为什么放弃了RethinkDB,而选择了MongoDB? \\
  • 网友FlukyS:坦率地说并不是我做的决定,我只是做了初期的测试,最后由经历决定。我认为可能是因为团队对MongoDB更熟悉吧,这是好几年前的决定,如果现在再来一次结果或许会不同。不管是使用RethinkDB还是MongDB,我们只是保存日志数据而已,并没有用于存放市场商用的数据。我们是读操作远多于写操作。\

    60023f8fb41ee6525ea7f5dd5709c0e6.png

    \ 有一种观点是,RethinkDB是败给了MongoDB,那么或许你还可以再读读MongoDB的相关内容。\

感谢木环对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

RethinkDB 设计用来存储 JSON 文档的分布式数据库,可通过简单操作实现多机分布式存储。支持表的联合和分组查询。什么是RethinkDB?RethinkDB 是从头打造的第一个开源、可扩展的JSON数据库,用于搭建实时网页。全新的访问模型颠覆了传统的数据库结构:开发者只需告诉RethinkDB,实时连 续地将查询更新结果推送到应用就可以了,不用每次都去poll一遍。RethinkDB的实时推送结构为搭建可扩展实时应用节省了大量时间精力。除了为实时应用提供了全新的设计之外,RethinkDB 还提供了一种灵活的查询语言、直观的操作和监控API,安装学习起来也非常容易。你可以查看这篇 Advancing the realtime web 得到更多RethinkDB计划的技术细节。什么时候RethinkDB是一个好的选择?当你的应用很大程度上有赖于数据的实时反馈时,RethinkDB 就会成为一个很棒的选择。“查询-响应”式的数据库访问模型在web上的确很有用,它可以直接映射到HTTP的“请求-响应”。而现代应用则需要将数据直接实时地传送到客户端。能够最大化得益于RethinkDB实时推送架构的例子包括:协作网站和移动应用数据流分析应用多人在线游戏实时交易场所设备联机举个例子:在协作设计一个app的时候,其中一个用户改变了某个按钮的位置,服务器就必须在第一时间通知所有在完成同一项目的其他用户。网页浏览器 能够通过WebSockets和http持久连接来支持这一功能,但数据库系统要迎合实时需求仍然是一个大的工程难题。而RethinkDB作为第一个开 源、可扩展的数据库,就是特别为实时推送数据到应用而设计的。哪些人在用 RethinkDB?RethinkDB 的用户包括上百个科技创业公司、咨询工作室和世界五百强企业。这里是其中的一些:Jive Software 和 Mediafly 使用RethinkDB搭建强大的响应式网页和移动应用Pristine.io 和 Narrative Clip 使用RethinkDB搭建用于设备连接的云架构Platzi 和 Workshape.io 使用RethinkDB进行实时分析CMUNE 和 NodeCraft 使用RethinkDB构建大规模可扩展多人游戏RethinkDB 拥有超过十万开发者的活跃社区和上百个来自世界各地的代码贡献者。RethinkDB是基于现有技术的吗?高效实现实时推送架构需要重新设计绝大部分的数据库成分,包括查询执行引擎、分布式系统、超高速缓存子系统和存储引擎。因为架构影响到每一个数据库 组成部分,RethinkDB不得不从C 开始一步步写起来。RethinkDB 是由数据库专家组成的团队花了五年时间做出来的,还得到了来自世界各地上百个代码贡献者的帮助。RethinkDB和realtime sync不同在哪里?和Firebase, PubNub 或者Pusher 这类实时同步API相比,RethinkDB主要不同在以下三个方面:首先,实时同步API是云服务,而RethinkDB 是开源项目。RethinkDB也有云端,可以通过我们的合作伙伴 Compose.io 和 Amazon AWS获得。它还可以部署在你自己的架构中,没有任何限制。其次,同步实时API只局限于同步文档,而RethinkDB是一个有着更普遍应用范围的数据库系统。 在RethinkDB中你可以运行任意query,包括table joins, subqueries, geospatial queries, aggregation, 还有map-reduce。实时同步服务有更多查询功能上的限制。最后,实时同步API的设计是直接从浏览器访问。这使得基本的app能够快速地跑起来,然而一旦app扩展了,灵活性就会受到限制。 RethinkDB的设计是从应用服务器进行访问,这一点上更像是传统的数据库。可能会要多花一点设置代码,但拥有足够的灵活性去适应应用的成熟。RethinkDB和MongoDB又不同在哪里?RethinkDB所基于的架构和MongoDB非常不同。开发者只需告诉RethinkDB,实时连续地将查询更新结果推送到应用就可以了,不用 每次都去poll一遍。你同样可以在RethinkDB上用传统的“查询-响应”范式来书写应用。然后在你开始为app添加实时功能时再去订阅实时数据 流。举个例子,这是你让RethinkDB查询一个文件时的命令:r.table('users').get('coffeemug').run()然后这是你从RethinkDB订阅更新流时用到的语句,在任何时候文档发生了变化就会推送:r.table('users').get('coffeemug').changes().run()RethinkDB的实时架构可以和MongoDB的oplog相提并论,但前者提供了更高层次的抽象。RethinkDB的数据流与查询计算引擎无缝整合,并允许你订阅查询结果的变化,而不仅仅是把数据复制过来。这种架构大幅度地减少了搭建实时app所需的时间和精力。除了实时推送架构,RethinkDB 还有许多胜过 MongoDB的地方:一种高级的查询语言,能够支持table joins, subqueries 和大规模并行式分布计算。融合了查询语言的操作和监控API,大幅度降低了RethinkDB扩展的难度。简洁美观的UI 易于复制转发,拥有在线文档支持和查询语言建议。可以看看这篇 technical comparison of RethinkDB and MongoDB 里面的评论比较中立一些。想听听个人观点的,请看@coffeemug 的what makes RethinkDB different.什么时候RethinkDB是一个不好的选择?当你需要用到完整ACID支持或者更强大的架构实施,RethinkDB就不大好用了。在这种情况下你最好用一些传统的MySQL或者PostgreSQL数据库。如果你需要做深度、密集型计算分析的话,你最好用Hadoop或者类似于Verticaa的面向列的存储工具。在某些情况下RethinkDB会在一定程度上牺牲书写可用性(write availability)来保证数据一致性(data consistency)。如果高要求的书写可用性对你来讲很重要,那你也不要纠结了,像Riak这样的Dynamo式系统可能更适合你。想要更多地学习RethinkDB?阅读 ten-minute guide 开始学习RethinkDB。对于熟悉分布式系统的程序员可以直接阅读 architecture overview 。走捷径用 cookbook,你可以看到许多常用的 RethinkDB查询例子。 标签:分布式数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值