我在一本书上读到:“Cassandra是一个NoSQL数据库,提倡先读后写,而不是关系模型”。
“先读后写”在 NoSQL 上下文中意味着什么?
先读后写意味着您在修改单元格之前先检查单元格的值。
Read-Before write 是 Cassandra 中的一个巨大的反模式。你读过的任何鼓励这样做的书都应该受到怀疑。通常,Cassandra 写入是在没有任何有关数据库当前状态的信息的情况下执行的。这样做的副作用之一是对 Cassandra 的所有写入实际上都是更新操作。这允许极快的写入,但确实有一些限制。
如果您确实需要在写入之前检查数据库的状态,Cassandra 提供了“检查和设置”(CAS) 操作,该操作使用 PAXOS 在修改记录之前建立数据库状态。这些写法就像update table set x = 3 if y = 1
。 CAS 查询比 C* 中的正常写入慢几个数量级,因此应谨慎使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)