YunTable-云时代的BigTable
在规划方面,YunTable0.1版至0.8版主要是实现BigTable的核心功能,并完成相应的分布式测试,而0.9版则是主要完成下一步的设计,开发和测试,以使YunTable更适应云环境。
特性 | BigTable* | 介绍 | 版本 |
Key和Value的格式 | Y | 可以是任意字节数组 | 0.1 |
Column Family | Y | 通过Column Family来对数据进行分类管理 | 0.1 |
支持SSTable的格式 | Y | 让数据文件一次写入,之后不可更改,来为I/O的性能做优化 | 0.1 |
Block Index | Y | 在SSTable文件的尾部加入相关的Index,以提升查询速度 | 0.1 |
Memstore | Y | 就是让比较新的数据放置在内存中以加快查询速度 | 0.1 |
Write Ahead Log | Y | 每个Region节点会有一个Write Ahead Log来记录数据修改的信息,以免保存在Memstore中的数据丢失 | 0.1 |
CRUD命令 | Y | 支持基本的数据修改和查询的命令 | 0.2 |
管理命令 | Y | 支持命令行来管理Master和Region | 0.2 |
轻量级Master | Y | 让Master所承受的负担尽量最小化,以让其支撑和管理更大的集群 | 0.2 |
备份 | Y | 通过将数据进行多次备份,来避免数据丢失的情况 | 0.8 |
Bloom Filter | Y | 用于让系统快速确定这个Region节点是否存有所需的值 | 0.8 |
Row排序 | Y | 主要支持按照字典顺序(lexicographic order)对Row排序 | 0.8 |
容灾支持 | Y | 要确保当某个Region节点失效时,Client也能很好地处理数据 | 0.8 |
批处理 | Y | 能批量向YunTable插入大量的数据 | 0.8 |
压缩 | Y | 通过压缩数据,来提升速度 | 0.8 |
客户端驱动 | Y | 比如,类似JDBC的驱动 | 1.0 |
Master standby | Y | Master会有一个对应的standby节点,来应对Master节点失效的情况 | 1.0 |
模块化 | N | 使得YunTable整体更模块化,来轻松应对新功能的添加 | 1.0 |
访问安全 | N | 增强YunTable的安全性 | 1.0 |
为云环境做优化 | N | 使YunTable更适合云环境 | 1.0 |
表1. 在功能特性方面的初步规划(*BigTable这栏里面的“Y”表示BigTable支持这个功能,而“N”表示这个功能不属于BigTable的范畴)