Cassandra中的行级锁定

时间:2016-01-26 23:44:45

标签: cassandra nosql

在Cassandra中实现行级锁定的机制是什么?我想要做的是在任何给定的时间只允许一个进程修改给定的行。

1 个答案:

答案 0 :(得分:2)

Cassandra不提供锁定。它确实提供轻量级事务,在某些情况下可以替换锁定。另请注意,单行上的操作是原子操作,因此锁定行不一定要确保读取或写入行为该行提供一致的字段值。

由于对各种分布式数据存储的基本约束,Cassandra不提供锁定:分布式数据存储不能确保一致性,同时还提供性能和可用性,但它可以提供这三个属性中的两个。 Cassandra的设计选择不提供一致性,因此它可以提供高性能和可用性。锁定是关于一致性。因此,Cassandra无法在不牺牲性能和/或可用性的情况下提供锁定。因为这违背了Cassandra的设计目标,所以Cassandra 永远不会拥有锁定功能是一个不错的选择。

真的需要锁定吗?如果你有一个RDBMS背景,你可能会感到惊讶,它并不像你想象的那样经常需要。如果确实需要,您必须选择不同的数据存储,旨在以性能或可用性(或两者)为代价提供一致性。