HBase协处理器行更新检测

时间:2016-09-09 13:19:46

标签: hbase

如何在HBase协处理器中检测行更新?

我试图在RegionObserver的postPut()函数中找出它,但是即使没有更改值,也会在每个put请求中调用它。

假设这是一系列操作:

  1. put' testTable',' row2',' cf:f1',' val1'

  2. put' testTable',' row2',' cf:f1',' val1'

  3. put' testTable',' row2',' cf:f1',' val2'
  4. 所以,我想检测何时发生操作1和3,即第一次添加行时以及何时更改值。不会再次推送相同的值。

    有没有什么方法可以让我在postPut()函数中得到单元格的旧值?并将其与新价值进行比较。

1 个答案:

答案 0 :(得分:1)

我会在预先放置并查找协处理器区域中的记录。如果记录是新的,它不应该执行物理I / O,因为布隆过滤器在99%的时间都是正确的。

我们在Splice Machine(开源)上进行了一些优化,我们直接访问bloom过滤器以绕过扫描中的同步。您可以查看我们的github网站https://github.com/splicemachine/spliceengine并搜索此类和方法HRegionUtil.keyExists()。

祝你好运。