请教个hbase的问题,并发情况下,如果对get-put保证原子性,是要自己在代码里实现吗?

0
已邀请:
1

Bob - 同程旅游大数据+BI 架构师 2015-11-13 回答

hbase本身有行级别锁。你可以在客户端获取行锁来执行判断逻辑,但是如果是高并发的情况还是有可能导致死锁并牺牲服务器资源。
因此,原子性还是需要在代码中实现。
在较低版本上,我们需要先执行查询或删除,再更新。
新的hbase版本中包含了checkAndPut/checkAndDelete/increment/append 这几个接口。
实现的原理类似:
HTable table = new HTable(conf, "usertable");
table.checkAndPut(参数)
 

要回复问题请先登录注册