我们需要同步两个将从同一个cassandra数据库获取数据的进程?
想象cassandra需要存储"整数"根据a"请求"更改值的值。
最初这个值为零,一个新请求到来,我们调用add(new_val)将新数字添加到db中的现有数据。让我们保持场景简单......
但是当两个不同的请求同时在cassandra行中的同一点写入时会发生什么?我们如何确保选择正确的值? 这是cassandra提供的东西吗?
答案 0 :(得分:1)
您要求的是分布式锁定,而在CAP方面,您要求的是一致的系统。
关于一致性部分,如果遵循规则R + W>,Cassandra可以是一致的。 N,但是您正在影响您的分区容差,如果您遵循此规则而不是构建默认用法的AP系统,则构建CA系统。
关于分布式锁,据我所知,Cassandra不允许这样做,但您可以使用其他系统(如Redis或zookeeper)来提供此功能,但这当然会增加系统的复杂性和维护/监控。