Cassandra - 重新插入已删除的列

use*_*102 2 cassandra pelops

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

例如:

rowkey1 :: name1-val1
                 name2-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);
Run Code Online (Sandbox Code Playgroud)

谢谢

sbr*_*ges 5

这很可能是时间戳问题.

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

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

因此,您的删除可能使用的是微秒的时间戳,该时间戳大于您添加的ms时间戳,因此添加将始终被删除阴影.