我最近开始使用hbase,只是想在这里检查是否有人遇到了我现在面临的情况。
我在几个服务器中部署了一个Web服务,并访问HBase来更新字段。现在,此字段更新是有条件的,这意味着我必须从hbase中读取该字段,并且如果其值为“ A”,则必须更新为“ B”。如果并发更新为“ C”,则不更新。但是由于不同的服务器和并发请求,可能都将现有值读为A,一个用B更新,另一个用“ C”更新。
如果有来自不同服务器的并发请求,则不使用线程级锁定。也是来自同一服务器的多个请求。
有没有一种方法可以锁定在HBase级别,这样我就可以在服务层获取该锁定并锁定该行,然后对其进行更新。
HBase API中有RowLock,但是我们使用的hbase的更高版本(1.1.2.3)删除了该类。
感谢有人可以指示方向!
谢谢。