一般我們說先記錄在預寫日誌(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方法