hbase'checkAndPut'延迟高于简单'put'?

时间:2012-11-15 19:10:07

标签: performance api hadoop hbase

逻辑上......似乎checkAndPut需要更多时间。我特别感兴趣的是负载场景,我们看到avg checkandput延迟为15ms(每行数据为17KB)....将checkAndPut转换为简单的'PUT'可以显着降低平均延迟。

对于99%的用例,当我们执行checkAndPut时,我们写入的行键甚至不存在。

1 个答案:

答案 0 :(得分:4)

是的,检查和放置延迟将高于简单的放置。但是,要高多少将取决于memstore中有多少数据以及块缓存中有多少。

checkAndMutate的工作原理如下:

  • 获取行锁
  • 等待所有未完成的交易被确认
  • 获取所需的单元格
  • 使用提供的规则比较它们
  • 执行put / delete

由于最后一步如果成功执行了put,checkAndMutate将会有一些额外的成本。获得(可能)是最昂贵的部分。如果您能够添加bloom过滤器并将所有索引块保留在内存中,那么您可以确保get尽可能快。