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 TimedOutException和批量更新的数据修改_Cassandra - Fatal编程技术网

Cassandra TimedOutException和批量更新的数据修改

Cassandra TimedOutException和批量更新的数据修改,cassandra,Cassandra,我执行批处理更新,修改少数列族中的少数行。在TimedOutException的情况下,可以修改某些数据,但可能不是整个集合 为了实现补偿事务,我需要知道修改了哪些数据(行)-有没有办法找到答案?异常是否包含此信息 谢谢, Maciej创建一个可以向外扩展的系统意味着要进行一些权衡——其中之一就是促进应用程序中的“幂等”操作 这意味着您可以: 假设数据被写入某个地方,并且节点将 最终变得一致 再次触发write的全部内容,可能是在给定的时间内睡眠或 在限制较少的一致性级别 Pat Hella

我执行批处理更新,修改少数列族中的少数行。在TimedOutException的情况下,可以修改某些数据,但可能不是整个集合

为了实现补偿事务,我需要知道修改了哪些数据(行)-有没有办法找到答案?异常是否包含此信息

谢谢,
Maciej

创建一个可以向外扩展的系统意味着要进行一些权衡——其中之一就是促进应用程序中的“幂等”操作

这意味着您可以:

  • 假设数据被写入某个地方,并且节点将 最终变得一致

  • 再次触发write的全部内容,可能是在给定的时间内睡眠或
    在限制较少的一致性级别


Pat Helland的“在流沙上构建”论文的第6节对这种方法进行了详细描述:

我无法从cassandra处获得修改了哪些数据部分的信息?这在异常本身中也不可用?否-在分布式系统中,回复客户机的节点可能不拥有数据,并且会将请求“协调”给相应的所有者,因此无法查看故障状态,或者消息是否由于负载而被丢弃。只是好奇,您不能跟踪更新列中的时间戳吗?然后,当您尝试重新写入时,您可以比较时间戳以查看写入的内容或未写入的内容。如果时间戳小于预期值,则表示未写入该项。如果时间戳是相同的,那么它是被写入的,所以什么也不做。它更大,然后另一个进程在之后写了一些东西,所以可能也什么都不做。