Cassandra - 重新插入已删除的列

时间:2012-10-08 11:46:28

标签: cassandra pelops

我刚刚在我创建的列族上运行了一些简单的测试(插入和删除)。 我观察到,虽然针对行键插入了新列,但是最近删除了一列,但是没有插入。

例如:

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);

由于

1 个答案:

答案 0 :(得分:5)

这很可能是时间戳问题。

如果写入冲突,cassandra使用时间戳来决定胜利者。在上面的代码中,您使用毫秒设置时间戳,但按照惯例,cassandra使用micro seconds中的时间戳。

  

时间戳可以是你喜欢的任何东西,但自1970年以来的微秒是一种惯例。

所以你的删除可能是使用微秒的时间戳,即>比添加的ms时间戳,因此添加将始终被删除阴影。