3

我们正处于购物车应用程序的设计阶段,我们正在考虑将 Cassandra 作为库存数据库。多个用户需要能够同时访问库存数据库中的同一产品行。

例如包含以下内容的产品表:

产品 ID = 1000,产品数量 = 1

产品 ID = 2000,产品数量 = 5

如果第一个用户选择产品 1000 并将产品数量 1 添加到购物车中,其他用户应该无法选择该产品,直到它被第一个用户丢弃(他将产品数量更新为 0)。

或者,如果第一个用户选择产品 2000 中的 3 个,则访问相同产品的其他用户应该不能选择相同数量的该产品,直到第一个用户丢弃一些产品(他将产品数量更新为 2)。

Cassandra 是否为这种场景提供行级锁定支持?

4

2 回答 2

1

Cassandra还没有内置的锁定支持。Astyanax API 提供的配方是常见用例的实现,其中之一,分布式行锁,用于这种锁定。

于 2013-08-27T09:16:18.177 回答
0

你想要的是原子性,Cassandra 可以与 1000 个用户同步,但是它使用时间戳来对每列中的值进行同步。您可以在一致性级别使用“全部”进行写入和读取,从而在所有节点中发送和请求信息,但可能会失去可用性。

于 2013-08-26T16:31:48.170 回答