最近在使用过程中,发现了一个问题:
就是对某一个rowkey做delete操作后,马上重新插入一条相同的rowkey的值。然后使用get方式操作后无法显示新插入的记录。
注意两个timestamp的值。
上面all_fields的timestamp的值为1385477515000
下面all_fields的timestamp的值为1385609995481
很明显下面的时间戳比上面大,下面是最新数据,上面是按照时间戳获取。
而实际情况是:上面的应该是最新数据,因为是2013-11-26 22:51:55,下面的是老的数据2013-11-25 14:04:21
因为时间戳的设置有误导致了最新数据无法正常获取。
那么我们采用的解决方式是:先删除然后再插入(按照正常的时间戳设置进行)
正是为了解决此问题,就带出来了Hbase的一个问题(刚开始描述的)。
相关jira查连接:https://issues.apache.org/jira/browse/HBASE-2256
原因就是当我删除了这个rowkey后,然后按照2013-11-26 22:51:55这个时间戳插入一条记录后,使用get方法返回是空
补充:
另外在删除时,带上了timestamp的取值,如果是老的值,删除是正常的;但是如果timestamp是最新的值,那么就是将整个记录删除,后面通过老的timestamp也无法获取。
个人感觉删除操作如下:
1、如果没有timestamp,那么删除的是整个value
2、如果带上了timestamp,那么就只删除当前的对应的value