读写过程
读请求过程:
(1) 客户端通过zookeeper以及root表和meta表找到目标数据所在的regionserver
(2)联系regionserver查询目标数据
(3)regionserver定位到目标数据所在的region,发出查询请求
(4)region先在memstore中查找,命中则返回
(5)如果在memstore中找不到,则在storefile中扫描(可能会扫描到很多的storefile—-bloomfilter布隆过滤器)
补充:布隆过滤器参数类型有2种:
Row、row+col
2、写请求过程:
(1)client向region server提交写请求
(2)region server找到目标region
(3)region检查数据是否与schema一致
(4)如果客户端没有指定版本,则获取当前系统时间作为数据版本
(5)将更新写入WAL log
(6)将更新写入Memstore
(7)判断Memstore的是否需要flush为StoreFile文件。
细节描述:
hbase使用MemStore和StoreFile存储对表的更新。
数据在更新时首先写入Log(WAL log)和内存(MemStore)中,MemStore中的数据是排序的,当MemStore累计到一定阈值时,就会创建一个新的MemStore&#