Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cassandra cli在批处理模式下删除后立即设置,设置为“丢失”_Cassandra - Fatal编程技术网

cassandra cli在批处理模式下删除后立即设置,设置为“丢失”

cassandra cli在批处理模式下删除后立即设置,设置为“丢失”,cassandra,Cassandra,我们有一个由两个节点组成的cassandra(简单)集群 在从定制转储进行恢复的过程中,我们发现 del column_family['row_1']; set column_family['row_1']['column1'] = '123'; set column_family['row_1']['column2'] = '456'; set column_family['row_1']['column3'] = '789'; 。。。通常不会设置第一列(列_1) 我们使用: $ cassa

我们有一个由两个节点组成的cassandra(简单)集群

在从定制转储进行恢复的过程中,我们发现

del column_family['row_1'];
set column_family['row_1']['column1'] = '123';
set column_family['row_1']['column2'] = '456';
set column_family['row_1']['column3'] = '789';
。。。通常不会设置第一列(列_1)

我们使用:

$ cassandra-cli -h cassandra.host.name -k keyspace_name -f dump_file
我们在Debian主机上使用cassandra 1.0.10

转储文件总是删除然后重新创建键空间,因此在执行时它实际上是空的。我们知道delete语句实际上是不需要的


我们删除了它,但我们仍然无法理解为什么会发生这种情况。我猜这是由某种设计造成的,我们只是缺少了,但我们无法弄清楚到底是什么出了“错”

我猜这里发生的事情是,行墓碑(来自行删除)和一个或多个列写入的时间戳最终具有相同的值。Cassandra cli遵循使用毫秒作为时间戳值的常见约定,因此当删除和插入像这样紧随其后时,这是非常可能的

当插入的列和墓碑具有相同的时间戳时,墓碑将获胜。所以你的第一个专栏似乎会消失是有道理的

在这里的例子中,问题可以通过使用显式时间戳写入删除,然后使用该时间戳加上一个时间戳写入其他列来解决。这类事情通常是不必要的,但请记住,这些写入意味着它们中的每一个都可以转到不同的Cassandra节点,用户仍然能够在任何时候获得正确的结果。时间戳是冲突解决机制