Cassandra如何保证列被排序以便将多个并发列插入到一个宽行?据我所知,Cassandra没有排锁。
答案 0 :(得分:1)
在Cassandra中,写入在行级别是原子的,这意味着插入或更新行中的列将被视为一次写入操作。
Cassandra不支持将多行更新捆绑到一个全有或全无操作中的事务。在Cassandra中,写操作报告可能会导致客户端失败,但实际上会将写入持久保存到副本中。
考虑到插入实际上大部分时间是在内存操作中,因此保持单个分区(行)排序并插入它是相对简单的并且以“redis like”速度完成。
如果同时存在多个列,Cassandra会使用时间戳来确定列的最新更新。
对于在内存中发生的操作,旧条目将被忽略。
时间戳由客户端应用程序提供或在协调器节点处设置。最新的时间戳总是在请求数据时获胜,因此如果多个客户端会话同时更新一行中的相同列,则最新的更新将最终持续存在。
如果您有兴趣,可以浏览一下: