NoSQL 中的先读后写是什么?
What's read-before-write in NoSQL?
我看过一本书:"Cassandra is an NoSQL database and promotes read-before-write instead of relational model"。
"read-before-write" 在 NoSQL 上下文中意味着什么?
先读后写意味着您在修改单元格之前检查单元格的值。
Read-Before write 是 Cassandra 中一个巨大的反模式。你读过的任何鼓励这样做的书都应该以怀疑的眼光看待。通常,Cassandra 写入是在没有关于数据库当前状态的任何信息的情况下执行的。这样做的一个副作用是所有写入 Cassandra 的操作实际上都是更新操作。这允许极快的写入,但确实有一些限制。
如果您确实需要在写入前检查数据库状态,Cassandra 提供了 "Check and Set"(CAS) 操作,它使用 PAXOS 在修改记录之前建立数据库状态。这些写成update table set x = 3 if y = 1
。 CAS 查询比 C* 中的正常写入慢几个数量级,应谨慎使用。
我看过一本书:"Cassandra is an NoSQL database and promotes read-before-write instead of relational model"。
"read-before-write" 在 NoSQL 上下文中意味着什么?
先读后写意味着您在修改单元格之前检查单元格的值。
Read-Before write 是 Cassandra 中一个巨大的反模式。你读过的任何鼓励这样做的书都应该以怀疑的眼光看待。通常,Cassandra 写入是在没有关于数据库当前状态的任何信息的情况下执行的。这样做的一个副作用是所有写入 Cassandra 的操作实际上都是更新操作。这允许极快的写入,但确实有一些限制。
如果您确实需要在写入前检查数据库状态,Cassandra 提供了 "Check and Set"(CAS) 操作,它使用 PAXOS 在修改记录之前建立数据库状态。这些写成update table set x = 3 if y = 1
。 CAS 查询比 C* 中的正常写入慢几个数量级,应谨慎使用。