现在 LWT 在 c* 中可用,使用一些更新的信息来恢复这个旧线程
历史
已考虑并决定反对在 Cassandra 中实施锁。你可以在这个 Jira 中看到历史、对话和最终解决方案——
https://issues.apache.org/jira/browse/CASSANDRA-5062。
总而言之,1)有一些外部选项允许对 cassandra(即 hector 和其他)进行一些锁定,但这些都是次优的解决方案。2) 决定构建 cassandra 自己的 Paxos 实现,而不是实现 c* 锁(这意味着 Zookeeper 集成 + 引入单点故障),它已作为轻量级事务公开,自 C* 2.0 以来可用,目前在 DSE 中。
例子
在此视频中,您可以观看大型银行如何在 C* 中使用 LWT
https://www.youtube.com/watch?v=-sD3x8-tuDU&list=PLqcm6qE9lgKJkxYZUOIykswDndrOItnn2
需要注意的关键点
1) 根据定义,LWT 比 Cassandra 中的常规插入/更新语句慢,并且旨在用于少数用例。工作量的 1%。
2) LWT 仅在分区内工作。跨分区插入不会阻塞 LWT。