Performance 是hbase';checkAndPut';延迟高于简单';放置';?

Performance 是hbase';checkAndPut';延迟高于简单';放置';?,performance,api,hadoop,hbase,Performance,Api,Hadoop,Hbase,从逻辑上讲,支票和认沽权似乎需要更多的时间。我特别感兴趣的是加载场景,在这种场景中,我们可以看到15毫秒的平均签放延迟(对于每行17KB的数据)…将签放转换为简单的“PUT”将显著减少平均延迟 对于99%的用例,当我们执行checkAndPut时,我们写入的行键甚至不存在。是的,check and put延迟将高于简单的put。然而,高出多少取决于memstore中的数据量和块缓存中的数据量 checkAndMutate的工作原理如下: 拿到排锁 等待确认所有未完成的事务 获取所需的细胞 使用

从逻辑上讲,支票和认沽权似乎需要更多的时间。我特别感兴趣的是加载场景,在这种场景中,我们可以看到15毫秒的平均签放延迟(对于每行17KB的数据)…将签放转换为简单的“PUT”将显著减少平均延迟


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

是的,check and put延迟将高于简单的put。然而,高出多少取决于memstore中的数据量和块缓存中的数据量

checkAndMutate的工作原理如下:

  • 拿到排锁
  • 等待确认所有未完成的事务
  • 获取所需的细胞
  • 使用提供的规则进行比较
  • 执行放置/删除操作

由于最后一步如果成功,则执行put,checkAndMutate将增加一些成本。get(可能)是其中最昂贵的部分。如果您能够添加bloom筛选器并将所有索引块保留在内存中,则可以确保get尽可能快。

checkandput也会更新hbase中的值,或者如果check and put返回false,我需要额外的周期来更新值