Cassandra 查询所有属性和一致性

Cassandra 查询所有属性和一致性,cassandra,nodes,nosql,Cassandra,Nodes,Nosql,这是一个关于cassandra在select*查询中的行为的问题。 这更需要理解,我知道通常我不应该执行这样的查询 假设我有4个RF=2的节点。 下表(列族): 创建表test\u存储( id文本, 在时间戳上创建了\u, 位置int, 数据文本, 主键(id) ); 我在表中插入了100个条目 现在我通过cqlsh从测试存储中选择*。多次执行查询会得到不同的结果,因此不是所有条目。当将一致性更改为本地仲裁时,我总是返回完整的结果。为什么会这样? 我假设,不管性能如何,我也会得到一致性的所有条目

这是一个关于cassandra在select*查询中的行为的问题。 这更需要理解,我知道通常我不应该执行这样的查询

假设我有4个RF=2的节点。 下表(列族): 创建表test\u存储( id文本, 在时间戳上创建了\u, 位置int, 数据文本, 主键(id) ); 我在表中插入了100个条目

现在我通过cqlsh从测试存储中选择*。多次执行查询会得到不同的结果,因此不是所有条目。当将一致性更改为本地仲裁时,我总是返回完整的结果。为什么会这样? 我假设,不管性能如何,我也会得到一致性的所有条目,因为它必须查询整个令牌范围

第二个问题,在本例中,当我向location添加一个二级索引,并从test_storage(location=1)执行类似select*的查询时,我也会得到一致性为1的随机结果。并且在更改为一致性级别的本地仲裁时始终更正结果。我也不明白为什么会这样

当将一致性更改为本地仲裁时,我总是返回完整的结果。为什么会这样

欢迎来到最终一致性世界。要理解它,请阅读我的幻灯片:

我假设,不管性能如何,我也会得到一致性的所有条目,因为它必须查询整个令牌范围

是的,由于非限制的
SELECT*
,Cassandra将查询所有令牌范围,但它将只从2个副本中的一个副本请求数据(RF=2)

在test_storage中执行类似select*的查询,其中location=1,我也会得到一致性为1的随机结果

与上面的答案相同,原生Cassandra二级索引只是在引擎盖下使用一个Cassandra表来存储反向索引,因此同样的最终一致性规则也适用于此