自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 HBase 源码学习 ---- Flush (5)

上次写到HBase 1.4 版本MemStore 如何实现Snapshot,本文梳理Snapshot之后的flush过程。Flush是用一个internalScanner scan出每个cell,然后一个一个写入临时文件,因为internal scan不涉及外部文件,只扫描内存,所以速度相对较快。StoreFlusher 类的createScanner方法通过snapshot中的KeyValueScanner创建了一个StoreScanner:Scan scan = new Scan();

2021-02-16 17:02:29 120

原创 HBase 源码学习 ---- Flush(4)

根据前三篇文章,HBase flush主要分三个阶段,snapshot,flush,commit,这篇深入HBase MemStore,梳理snapshot的流程。volatile Section activeSection;volatile Section snapshotSection;MemStore 主要包含这两个Section,写入的Cell保存在activeSection中,volatile关键字保证线程可见性。接下来是snapshot方法:@Override public Mem

2021-02-16 14:00:48 108

原创 HBase 源码学习 ---- Flush (3)

上一篇主要梳理了Flush的大致流程,包括prepare,flush,commit三个阶段,其中最耗时,涉及磁盘IO的阶段是将memstore的快照写入临时文件的flush阶段,这篇深入flush阶段进行梳理。Store通过调用flushCache() 方法,将快照写入临时文件,实际是调用storeEngine中,StoreFlusher的flushSnapshot方法:StoreFlusher flusher = storeEngine.getStoreFlusher(); IOExcepti

2021-02-11 10:56:53 120

原创 HBase 源码学习 ---- Flush(2)

HBase Flush 流程梳理HRegioninternalFlushcache() 方法internalPrepareFlushCache() 方法检查阶段写入日志接上一篇继续梳理HBase Flush。HRegionpublic FlushResult flushcache(boolean forceFlushAllStores, boolean writeFlushRequestWalMarker) throws IOException { if (this.closing

2021-02-10 14:39:36 162

原创 HBase 源码学习 ---- Flush(1)

HBase Flush 流程梳理HBase Flush 流程梳理HRegionServerPeriodicMemstoreFlusherMemStoreFlusherMemStoreFlusher包含的超参FlushHandlerHBase Flush 流程梳理最近在做HBase 写入方面的优化,因为刚接触HBase,在此把HBase Flush流程记录下来,方便以后查阅。HRegionServer在HRegionServer类中,首先调用initializeThread()方法进行初始化,与Flu

2021-02-09 17:17:43 373

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除