1.前沿
关于hbase setCaching ,setBatch 网上搜索一大把资料,主要的目的是以空间换时间,减少RPC请求的次数 ;之前看到的一些文章不能完全解答自己的一些疑惑 比如 :不设置setBatch,返回的result 的数量?其对rpc次数的影响?setCaching默认值?其次新版本hbase(HBase-0.98 之后的版本,还没有考证)引入了setMaxResultSize 的概念等。 特此写篇博客记录下
2.ClientScanner scan 的原理以及源码查看
先写之前,总结下一些公式(大致可以参考为,不完全正确):
Result 返回的个数 =( row数 * 每行的列数 )/ Min(每行列数,Batch大小)
RPC 返回的个数 = (row数 * 每行的列数)/ Min(每行列数,Batch大小) / Caching大小
(只所以 称为 参考公式 原因如下,第一引入了setMaxResultSize 参数,判断某次rpc调用结束的机制发生变化,肯定还以setMaxResultSize 有关啦 ,第二 (row数 * 每行的列数)准对每行的列数是固定的,如果不固定,此公式可能有所误差)
setMaxResultSize 作用 :
看到上面的公式,我们可以得出 setCaching 是用来控制rpc的个数,但仅仅按照这个阈值貌似还差点什么