我刚刚在我创建的列族上运行了一些简单的测试(插入和删除)。 我观察到,虽然针对行键插入了新列,但是最近删除了一列,但是没有插入。
例如:
rowkey1 :: name1-val1
名2-VAL2
删除name1后,如果我再次尝试插入它,我仍然会得到
rowkey1 :: name2-val2并且不会恢复为name1-val1,name2-val2。
当我尝试通过我的代码插入它时出现问题(使用Pelops Java客户端) 以下是我用于插入的代码段:
Mutator mutator = Pelops.createMutator("poolname");
Column column = new Column(bufcolname);
column.setValue(bufcolval);
column.setTimestamp(new Date().getTime());
mutator.writeColumn("MyColumnFamily",userId, column);
mutator.execute(ConsistencyLevel.ONE);
由于
答案 0 :(得分:5)
这很可能是时间戳问题。
如果写入冲突,cassandra使用时间戳来决定胜利者。在上面的代码中,您使用毫秒设置时间戳,但按照惯例,cassandra使用micro seconds中的时间戳。
时间戳可以是你喜欢的任何东西,但自1970年以来的微秒是一种惯例。
所以你的删除可能是使用微秒的时间戳,即>比添加的ms时间戳,因此添加将始终被删除阴影。