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