Cassandra-重新插入已删除的列

Cassandra-重新插入已删除的列,cassandra,pelops,Cassandra,Pelops,我只是在我创建的列族上运行了一些简单的测试(插入和删除)。 我观察到,虽然新列是针对行键插入的,但最近删除的列不会被插入 例如: rowkey1::name1-val1 名称2-val2 删除name1后,如果我再次尝试插入它,仍然会得到 rowkey1::name2-val2,并且不会恢复为name1-val1,name2-val2 当我试图通过代码(使用Pelops Java客户端)插入它时,就会出现问题 以下是我用于插入的代码段: Mutator mutator =

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

例如:

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

谢谢

这很可能是时间戳问题

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

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


因此,您的删除可能使用的时间戳为微秒,大于添加的ms时间戳,因此添加将始终被删除隐藏。

此列族有多少个节点,删除后多久您将尝试插入新列?嗨,Chris,有2个节点,我试着在2-5分钟后插入它。两个节点都在同一台机器上运行。顺便说一句,这就是解决问题的方法:我将代码更改为
List colList=new ArrayList();对于(…){colList.add(mutator.newColumn(keyname,keyval));}mutator.writeColumns(COLFAMILY,userId,colList)