RethinkDB介绍
来源:互联网 发布:杭州工商局投诉淘宝 编辑:程序博客网 时间:2024/06/04 14:26
无意中看到redis作者在博客中推荐了RethinkDB,早上来简单了解了下,记录下:
RethinkDB是一个完全支持Memcached协议、数据可持久化的工业级key-value存储系统。
RethinkDB官网介绍如下:
RethinkDB is built to store JSON documents, and scale to multiple machines with very little effort. It has a pleasant query language that supports really useful queries like table joins and group by, and is easy to setup and learn
Simple programming model:
- JSON data model and immediate consistency.
- Distributed joins, subqueries, aggregation, atomic updates.
- Hadoop-style map/reduce.
Easy administration:
- Friendly web and command-line administration tools.
- Takes care of machine failures and network interrupts.
- Multi-datacenter replication and failover.
Horizontal scalability:
- Sharding and replication to multiple nodes.
- Queries are automatically parallelized and distributed.
- Lock-free operation via MVCC concurrency.
在网上查了下一些资料,摘要如下:
RethinkDB的特点:
- 随CPU个数线程扩展
- SSD上速度快十倍
- 节省内存空间
- 断电后及时恢复
- 细化的持久性控制
- 支持上万的并发连接数
- 支持裸盘设备,多磁盘上自动数据分区
RethinkDB的设计思想
1.B树会产生大量的随机写操作,对闪存寿命的负面影响很大。
2.闪存具有良好的随机读性能,所以B树和cluster index变得不再重要。
3.基于以上判断,RethinkDB采用append-only的方式来管理数据和索引,消除闪存上的随机写操作
Append-Only的影响
优点:
1.数据一致性(Data Consistency)。
- 所有更新追加到文件尾部,其他部分没有任何修改
- 文件的其余部分提供了一个完全一致的数据库
2.热备份(Hot Backups)。
- 在数据库文件被修改的同时可以拷贝一致数据
- 可简单地实现增量备份
3.及时恢复(Instantaneous Recovery)
- 数据库本身就类似于一个事务日志
- 恢复时直接截断数据库文件到一个已知一致的事务
缺点:
1) 在一个insert或者update很频繁的workload下,大量数据很快就会过期;
2) append-only消除了数据组织的数据局部性,虽然在SSD上随机读代价很小,但是仍旧是一个问题;
3) 对于索引结构来说,每50MB的数据会生成2GB的数据存储,需要有效地进行垃圾回收。
上面内容来自一PPT,RethinkDB & TokuDB调研测试报告 有兴趣可以下载。
从PPT中查看到,其相关性能在并发足够大时,相关性能相比Memcache还是更占优势。
但memcache只是缓存,它可以支持持久化存储,且完全支持Memcache协议!
更多是针对SSD做的优化。
目前官网有免费版与商业版!以上内容只供参考!
- RethinkDB介绍
- rethinkdb安装
- rethinkdb命令
- RethinkDB之初体验
- CentOS下安装RethinkDB
- rethinkdb踩坑记录
- [转]一个高性能的NoSQL: RethinkDB
- RethinkDB成为Linux基金会的一员
- Ubuntu 14.04安装RethinkDB 2.3.6
- RethinkDB 创始人总结的 57 条创业经验
- RethinkDB创始人教你如何找到创业创意(完整篇)
- RethinkDB创始人教你如何打造一个伟大的产品
- RethinkDB创始人教你如何找到创业点子
- 从RethinkDB的倒闭,反思国内外开源项目
- RethinkDB联合创始人分享的44条工程管理经验
- 使用RethinkDB与SpringBoot 搭建一个简单的聊天
- RethinkDB联合创始人分享的44条工程管理经验
- Go实战--golang中使用RethinkDB(gorethink/gorethink.v3)
- 自己定制Flex预加载器
- C#中进程单例的实现
- Linux下 android SDK安装及使用时出现的几个问题解决办法(我遇到的)
- 指定改变ListCtrl中某一行的颜色
- tomcat关闭端口
- RethinkDB介绍
- VC屏蔽WebBrower控件右键菜单
- 国内CMS内容管理系统
- Eclipse 中文编码问题 inherited from container cp1252
- socket函数手册
- 走进云中,定制属于自己的ArcGIS Online(中)
- Struts2框架(一)概述
- C++中 三角函数的输入范围
- solaris root远程登录问题