HBase LruBlockCache源码分析

HBase LruBlockCache源码分析

本章对LruBlockCache源码进行简单部分和讲解,其中包括如下部分:

  • 构造函数
  • getBlock
  • cacheBlock
  • evict

构造函数说明

LruBlockCache 构造函数

LruBlockCache 构造函数

从构造函数可以看出,整体有一下几个部分组成

  1. LruBlockCache 内存比例

LruBlockCache 内存比例

  1. 统计参数
this.stats = new CacheStats(this.getClass().getSimpleName());

// 一下配合stats进行必要统计
this.count = new AtomicLong(0);
this.elements = new AtomicLong(0);
this.dataBlockElements = new AtomicLong(0);
this.dataBlockSize = new AtomicLong(0);
this.size = new AtomicLong(this.overhead);

存储容器

new ConcurrentHashMap<BlockCacheKey, LruCachedBlock>(mapInitialSize, 
		mapLoadFactor, mapConcurrencyLevel);

LruBlockCache EvictionThread (clean/10s | clean/notify)

if(evictionThread) {
    
    
	this.evictionThread = new EvictionThread(this);
	this.evictionThread.start();
} else {
    
    
	this.evictionThread = null;
}

@Override
public void run() {
    
    
	enteringRun = true;
	while (this.go) {
    
    
	synchronized(this) {
    
    
		try {
    
    
			this.wait(1000 * 10/*Don't wait for ever*/);
		} catch(InterruptedException e) {
    
    
			LOG.warn("Interrupted eviction thread ", e);
			Thread.currentThread().interrupt();
		}
	}
	LruBlockCache cache = this.cache.get();
	if (cache == null) break;
		cache.evict
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值