正如我常说的,对不起我的英语。我正在为 Cassandra 中的某些列族创建一些手动索引。我已经阅读了有关此的所有内容,但我发现了一些我无法正确理解的内容。
在本演示文稿中,在 Cassandra 中编制索引,第 36 至 45 页,由 Ed Anuff 完成,我看到了他为用户列族创建索引的简单示例。他使用 2 个明显的 CF 和另一个来处理并发。这第三个 CF 是“我的问题”。如果我没记错的话,Cassandra 将始终存储每列的最新值。如果这个值被索引了,我必须在索引 CF 中更新它(删除旧索引并创建新索引),但为什么需要第三个 CF?当我考虑到这一点和并发性时,我的理解是:好的,很多人更新了一个被索引的值。这将意味着更新索引的大量工作,但最后一个值将在用户 CF 和索引 CF 中,这就是为什么每列都有一个时间戳,那么并发有什么问题呢?更,
我知道我对 Cassandra 事务非常无知,但我不明白第三个 CF 背后的原因。Ed Anuff 解释说,使用第三列族,您可以将索引恢复到此处的一致状态,但是,为什么它们会陷入不一致状态?而且,如果发生这种情况,用户 CF 可能足以恢复索引,还是我错了?
拜托,有人可以解释一下吗?什么是/是我的错误/s?
非常感谢你!