《Hbase权威指南》深入学习hbase架构(7):缓存策略

本文介绍了HBase中的缓存机制,包括memstore和blockcache的作用及工作原理。memstore负责保存最近更新的数据以加快响应速度,而blockcache通过优化storefile文件的读操作来提高读取效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HBase中的缓存只要是指在HRegion server节点之上的cache缓存。一部分用来作为memstore,起作用主要是保存最近更新的部分数据以加快客户端响应;另一部分作为blockcache,主要用于读操作。
HRegion server会为其维护的每一个region提供一个memstore,用户的所有修改操作,首先将数据append到WAL日志,然后写到内存中的memstore中,然后就会给客户端确认修改成功。在默认情况下memstore的大小是64MB,当写到memstore中的数据大于64MB后,就会将其中的数据刷新到磁盘上持久化数据。
每一个HRegion server上都只有一个blockcache结构,主要是用于对storefile文件的读操作的优化:storefile文件是有hbase blocks著称的,block是hbase基础的I/O单元——每次读或写数据都是按block的大小操作的(默认64KB);blockcache是基于LRU算法的,服务器每次将读取的一个block数据块保存到blockcache结构,然后在blockcache的数据量达到上线阀值([u]heapsize * hfile.block.cache.size * 0.85[/u])后启动基于LRU算法的淘汰机制,将最老最不常用的block删除。
在HRegion server响应可以查询请求的时,首先会在memstore中查询匹配的数据,没有查到的话,再到磁盘上查询storefile中的数据,系统每次读取一个block,并将其放入blockcache如果在当前的block中读到匹配的数据则直接将结果返回给客户端;否则会接着读下一个block,直到将所属region中的数据读完,最后返回结果——查到匹配的数据或返回空。
另外需要注意的是,N * memstore + blockcache的大小总和不能大于给HRegion server配置的JVM heap堆内存的80%,否则服务器将启动不起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值