专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
稀土掘金技术社区  ·  我又写出了被 Three.js ... ·  2 天前  
京东零售技术  ·  京东零售基于Flink的推荐系统智能数据体系 ... ·  2 天前  
OSC开源社区  ·  那个苹果史上最有品味的程序员去世了 ·  2 天前  
玉伯  ·  欢迎试用,过几天正式发布 0.3 ... ·  2 天前  
51好读  ›  专栏  ›  OSC开源社区

开源项目 RethinkDB 关闭,创始人总结失败教训

OSC开源社区  · 公众号  · 程序员  · 2017-01-23 08:32

正文

请到「今天看啥」查看全文



好了,虽然市场不好,但其他开发工具公司仍然销售了很多产品。为什么不是RethinkDB呢?

虽然我们无法干预市场的动态(除了建立别的东西),产品决定权却完全在我们的控制之内。我们希望打造一个优雅,健壮,美观的产品,因此我们对以下指标进行了优化:

  • 正确性。我们作出了非常严格的保证,并且严格履行。

  • 接口的简单性。我们承担了实现过程中大部分复杂性的工作,所以应用程序开发人员可以更轻松。

  • 一致性。我们做到了从查询语言,客户端驱动程序,群集配置,文档,到首页上的营销副本都尽可能一致。

如果你觉得这些权衡似乎很熟悉,他们是“ worse is better ”(即快速拿出原型,听取用户意见,然后继续增加功能,修复bug)。原来,正确性,接口的简单性和一致性是大多数用户的错误衡量标准。相反,大多数用户希望这三种标准:

  • 及时。他们希望产品在需要时就存在,而不是三年后。

  • 可触知速度。人们希望RethinkDB能够快速实现他们想要的工作负载,而不是我们建议的“真实世界”工作负载。例如,他们会写快速脚本来测量插入一万个文档需要多长时间,而不会读取它们。我们输掉了市场学习这一仗时,MongoDB巧妙地掌握了这些工作负载。

  • 一个有用的东西。我们开始建立一个好的数据库系统,但用户想要一个好的办法来实现某件事(例如,一个很好的方法来存储来自hapi的JSON文档,一个很好的方式来存储和分析日志,一个很好的方式来创建报告等)

不是我们没有试图让RethinkDB快速发货,并建立其周围的生态系统,让有用的工作做起来更加容易。我们做到了这一点。但是正确、简单和一致的软件需要很长的时间来构建。这使我们落后市场三年。

当我们觉得RethinkDB满足了我们的原来的设计目标,我们有信心让它投入生产使用时,几乎每个人都问“RethinkDB与MongoDB有什么不同?”我们努力解释为什么正确性、简单性和一致性更加重要,但这些并不是大多数用户最重要的评判标准。

老实说,它受到很大的打击。很难理解,为什么人们会选择一个几乎不做它应该做的事情(存储数据)的系统,并且还有一个大的内核锁,随机丢弃错误,实现单节点功能,有一个几乎不工作的分片系统,尽管它是产品的核心特征之一,基本上不能保证正确性,并且暴露了没有可辨别的一致性或视觉一致性的接口。

每次MongoDB发布一个新版本,人们会祝贺他们做出改进,这让我感到悲哀。他们会宣布他们修复了BKL,但是事实上他们会把粒度从一个数据库降到一个集合。他们会添加更多的操作,而不是一个适合系统其余部分的组合接口,他们只是简单地使用一次性命令。他们会做分片改进,但很明显,他们不愿意或者不能做出基本的数据一致性保证。

但随着时间的推移,我学会了欣赏人群的智慧。当人们需要的时候 MongoDB能将普通开发者变成英雄,而不是几年后。它使数据存储速度快,让人们快速收货。随着时间的推移,MongoDB长大了。他们解决了一个接一个的架构问题,现在它是一个优秀的产品。它可能不像我们想要的那么完美,但它把自己做的工作做得很好。

2014年我们已经清楚地意识到自己在竞争中处于劣势,我们努力与MongoDB区分开来。我们发现了一种非常优雅的方式来添加 实时推送 ,希望能够让开发人员构建一代他们之前无法构建的应用程序。但这还不够。突然,我们发现自己正与我们几乎忽略的致力于解决实时问题多年的Meteor和Firebase在竞争。我们再次落后了市场三年,然后我们发现自己已经完全败下阵来。

云服务







请到「今天看啥」查看全文