[译] RethinkDB compared to MongoDB

news/2024/7/5 10:44:34

原文:RethinkDB compared to MongoDB

许多人会问 RethinkDB 与 MongoDB 以及其他 NoSQL 数据库有什么不同。我们首先尝试通过在高层面的技术概览比较 RethinkDB 和 MongoDB 来回答这个问题。但是,概览意味着中立,就必然会忽略一些使 RethinkDB 与众不同的有趣的事情(就比如我们对 Dota 的痴迷)。在本文中,我想站在更加私人的角度来描述这个产品。

两全其美

第一代 NoSQL 产品大致可以分成两类——面向开发者的和面向运维的。

面向开发者的产品包括 MongoDB 和 CouchDB。他们通常关注易用性,拥有富文档结构,以及灵活的查询功能。然而,当与他们的同行(面向运维的NoSQL)相比时,将他们部署到分片环境和规模大的负载要更加困难。

面向运维的产品包括 Cassandra 和 Riak 。这些产品是为了高可用部署和大规模而设计的。不像面向开发者的产品,以目前的形式面向运维的产品通常较少有强大的查询功能,也不会太关注易用性。

得益于前车之鉴以及三年的技术工作,RethinkDB 旨在融合两者的理念,提供一个两全其美的产品。它被设计成非常易用,拥有丰富的数据模型,并且支持及其灵活的查询功能。通过几下点击就能将 RethinkDB 的节点进行分片。

提高标准

我们还致力于怎样延伸 NoSQL 系统的可能性。RethinkDB 添加了现代查询语言,大规模并行分布式架构,支持分布式 join 和 subqueries,还提供了一个既简单又漂亮的管理工具,下边是我们的早期用户觉得 RethinkDB 亦可赛艇的一些理由。

现代查询语言

在所有我见过的新型数据库中, RethinkDB 拥有最好的查询语言 @rauchg

ReQL 是一个数据驱动的,抽象的,多态查询语言。它很容易学习并且极其灵活。
为主流编程语言(目前有 Python,Ruby,Java 和 JavaScript)提供了定制的、高度集成的 DSL。
不同于大多数的 NoSQL 系统,RethinkDB 支持服务端 subqueries 和分布式 join 操作,这消除了复杂的客户端代码和多个数据库服务器的往返。
ReQL 并不基于字符串解析,所以被注入攻击的风险大大降低。
这并不是说 ReQL 已经完美了,我们还在不断给它添加更多的功能和操作。

管理后台:简单与美貌并存

WOW,RethinkDB 的管理界面简直不可思议。很容易就能安装到 OSX 上。大家快来看看。@mjackson

几下点击就能完成分片和复制。
所有的集群操作都可以用 ReQL 脚本化。
内置数据资源管理器提供了在线文档和查询建议。
很多产品都很易用,但我们认为 RethinkDB 是其中最漂亮的。

大规模并行分布式架构

WOW 跨分片 join,分布是数据不是梦 。@kapso
所有的查询,包括 join、aggregation、subqueries,都会自动编译成分布式程序并且跨级群执行,用户不费吹灰之力。
数据密集型操作自动编译成 map-reduce 作业来充分利用分布式结构。
集群协议是对等的,不需要细条节点。这使得集群非常容易设置和操作。

当然,我们一直都在提高性能,一直致力于消除更多的性能和可扩展性瓶颈。

鲁棒实现

RethinkDB 看起来像是做对了的 MongoDB:MVCC,非阻塞写入,默认的稳定性,v8,增量 vacuum,容易分片。@herodiade

一个无锁的架构和多版本并发控制系统允许不同的工作负载在一个集群中共存。
一个自定义的,B-Tree aware buffer cache 中有效地操作数据集要远远大于可用 RAM 的数量。
一个异步的、事件驱动架构,基于高度优化的协同程序代码尺度跨越多个核和处理器、网卡、和存储系统。
一个并发的自定义日志结构化存储引擎,增量磁盘上垃圾压实机利用不同类型的存储硬件。

局限性

RethinkDB 在很多项目上都可以工作的很好,但并不是银弹。选型时请阅读 什么时候 RethinkDB 不是一个好的选择


http://www.niftyadmin.cn/n/3338710.html

相关文章

360浏览器急速模式_chrome和360急速浏览器的扩展是通用的吗?-戴尔Chrome

Google chrome浏览使用的是Google自己开发的内核,而360浏览器貌似使用的是IE的内核,如果360的UI允许和chrome的通用就可以,否则你只能到Google chrome的应用商店上去下载新的扩展应用,Google chrome的应用商店里面各种扩展插件的应…

qt之fiddler抓包

最近项目中使用到了Qt的网络库,在用的过程中也发现了不少坑和问题,本文仅仅作为记录,方便日后查阅。 因为我们整个客户端的gui都是使用qt来完成的,心想qt既然有网络库,而且真心觉着qt封装的控件还是不错的&#xff…

神经网络 mse一直不变_神经网络法预测喷雾液滴尺寸的粗浅尝试

喷雾场中,液体射流受到气动力、表面张力、粘性力及自身惯性等多种因素之间复杂的相互作用破碎成液带、液块或液滴,而这些初次雾化的产物又会继续破碎成更小的液滴完成二次雾化,因此准确地预测喷雾场中液滴的尺寸及分布一直是困扰诸多研究者的…

斜杠的意思是或还是和_「斜杠青年」正在成为未来年轻人职业发展的趋势

作为长时间、多领域的斜杠青年本人,同时身为人力资源从业者、“职业占卜师”,强答一波——首先抛出我的观点:「斜杠青年」正在成为未来年轻人职业发展的趋势,而且正在越来越多。以下回答基于我自己多年的斜杠实践经验、身边许多的…

u3d 总是背向相机_Q2 | 从这台“终极”相机开始爱上Leica

在现阶段,一台固定镜头相机的终极形态是什么?它的画质要足够强大、它的做工要足够精巧、它的速度要足够凌厉,无论市井野游还是庙堂江湖,它要能在任何场合都拿得出手,更要能方便地分享社交网络,同时还必须足…

发动机和变速箱工作原理

摘自:http://club.autohome.com.cn/bbs/thread-c-172-10864192-1.html### 先来一个总图:这就是汽车的动力系统的结构,下面的问题就是围绕这个图来讲解的: 发动机 一、基本理论汽油发动机将汽油的能量转化为动能来驱动汽车&#xf…

自学python单片机编程入门-micropython基础入门(esp32/esp8266单片机物联网开发)

micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用&#xff08…

很不错的网站资源收集(持续更新...)

2019独角兽企业重金招聘Python工程师标准>>> 1、angularjs的中文网站: https://angular.cn/ 2、Nginx中文网站: http://www.nginx.cn/doc/index.html 3、jQuery之家,里面有很多好用的jQuery,HTML5,CSS的资源…