一般我们说先记录在预写日志(wal),然后再写入缓存(memstore),实际上我们从源码中可以发现有一些小小的偏差.
实际操作顺序应该是:
1 hbase做写操作时,先记录在本地的wal(Write-Ahead logfile)中,但是不同步到hdfs
2 然后再把数据写入到memstore
3 开始将wal同步到hdfs
4 最后如果wal同步成功则结束,如果同步失败则回滚memstore
源码参考的是
hbase-server-1.3.1.jar中
HRegion类内
doMiniBatchMutation方法