- 博客(4)
- 收藏
- 关注
原创 ZK-watch机制
客户端注册 在创建一个 ZooKeeper 客户端对象实例时,可以向构造方法中传入一个默认的 Watcher。并向服务端发送请求 完成请求发送后,会由客户端 SendTread 线程的 readResponse 方法负责接收来自服务端的响应, 把 WatchRegistration 子类里面的 Watcher 实例放到 ZKWatchManager 的 dataWatches 中存储起来 服务...
2020-05-06 22:12:05
264
原创 WAL线程模型
其线程模型主要实现实在FSHLog中,FSHLog是WAL接口的实现类,实现了最关键的apend()和sync()方法,其模型如图所示: 这个图主要描述了HRegion中调用append和sync后,hbase的wal线程流转模型。最左边是有多个client提交到HRegion的append和sync操作。 当调用append后WALEdit和WALKey会被封装成FSWALEntry类进而再封...
2019-03-08 22:24:30
141
原创 Hbase写入流程学习
客户端提交流程比较简单 服务端处理流程 解析HBASEput RPC 获取行锁、Region更新共享锁: HBase中使用行锁保证对同一行数据的更新都是互斥操作,用以保证更新的原子性,要么更新成功,要么失败 开始写事务 开始写MEMStore Append HLog(此时还在本地缓存中) 释放行锁和共享锁 Sync HLog:HLog真正sync到HDFS,在释放行锁之后执行sync操作是为了尽...
2019-03-06 22:14:24
110
原创 Hbase split 学习记录
Hbase split 学习记录 split过程 prepare阶段 在内存中初始化两个子region,具体是生成两个HRegionInfo对象,包含tableName、regionName、startkey、endkey等。同时会生成一个transaction journal,这个对象用来记录切分的进展,具体见rollback阶段 execute阶段 a regionserver 更...
2019-03-04 22:16:00
124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人