HBase的blockcache策略
cache策略已经被研究的很多了,其基本概念见
HBase里面将cache分为三类:
1. InMemory:希望其内容能够常驻memory
2. Single:被访问一次的block放入这里
3. Multi:被访问不止一次的block放入这里
InMemory容易理解,在系统中的一些meta数据会被经常的访问到,同时size又比较小,让其能够常驻内存而不因为内存size的限制而被替换掉是非常合理的想法。
Single和Multi的出现是为了避免scan的影响,试想如果cache的size配置为100M,而一次scan的数据大小为200M,则所有cache中的数据都将被remvoed,但是fill进cache的block却永不会被访问第二遍(scan的语义),这是多么的浪费。
以上想法的核心思想是将cache分级,而不是大家都呆在一层cache里面互相影响,有篇文章总结了这种想法(思想不完全相同):
LIRS: Low Inter-reference Recency Set Replacement for VM and Buffer Caches...
posted on 2011-07-24 15:13 RaymondSQ 阅读(3805) 评论(0) 编辑 收藏 举报