post

可持久化的工业级存储系统:RethinkDB

RethinkDB是什么?RethinkDB是一个完全支持Memcached协议、数据可持久化的工业级key-value存储系统。RethinkDB采用append-only的方式来管理数据和索引,消除闪存上的随机写操作,从而延长了内存的使用寿命。本文内容摘自淘宝核心系统团队博客分享的文档,最下面有原文地址及文档下载。

一、RethinkDB的特点:

– 随CPU个数线程扩展
– SSD上速度快十倍
– 节省内存空间
– 断电后及时恢复
– 细化的持久性控制
– 支持上万的并发连接数
– 支持裸盘设备,多磁盘上自动数据分区

二、RethinkDB的安装和使用:

RHEL 5下直接安装RethinkDB包
– sudo rpm -i rethinkdb-1.0-1.0.0_1-1.x86_64.rpm
– rpm -qa |grep rethinkdb  rethinkdb-1.0-1.0.0_1-1
运行RethinkDB
– 默认安装在/usr/bin/rethinkdb-1.0
– ./rethinkdb-1.0 -f /u01/rethinkdb_data
– ./rethinkdb-1.0 -f /u01/rethinkdb_data -c 4 -p 11500
– ./rethinkdb-1.0 -f /u01/rethinkdb_data
– ./rethinkdb-1.0 -f /u03/rethinkdb_data -c 4 -p 11500

三、RethinkDB的设计思想:

B树会产生大量的随机写操作,对闪存寿命的负面影响很大。
闪存具有良好的随机读性能,所以B树和cluster index变得不再重要。
基于以上判断,RethinkDB采用append-only的方式来管理数据和索引,消除闪存上的随机写操作。

1、Append-Only的影响
数据一致性(Data Consistency)。
– 所有更新追加到文件尾部,其他部分没有任何修改
– 文件的其余部分提供了一个完全一致的数据库
热备份(Hot Backups)。
– 在数据库文件被修改的同时可以拷贝一致数据
– 可简单地实现增量备份
及时恢复(Instantaneous Recovery)
– 数据库本身就类似于一个事务日志
– 恢复时直接截断数据库文件到一个已知一致的事务

2、Append-Only的影响(cont.)
append-only带来的限制:
1) 在一个insert或者update很频繁的workload下,大量数据很快就会过期;
2) append-only消除了数据组织的数据局部性,虽然在SSD上随机读代价很小,但是仍旧是一个问题;
3) 对于索引结构来说,每50MB的数据会生成2GB的数据存储,需要有效地进行垃圾回收。

四、RethinkDB的随机插入性能:

RethinkDB的随机插入性能

RethinkDB的随机插入性能

RethinkDB的随机插入性能

RethinkDB的随机插入性能

RethinkDB的随机插入性能

五、RethinkDB的随机查询性能:

RethinkDB的随机查询性能

附上以上相关内容的ppt文档百度网盘下载地址:RethinkDBTokuDB调研测试报告.pptx

以上内容来源于:淘宝核心系统团队博客

Speak Your Mind

*

· 1,156 次浏览