Cassandra 空键和不带';不存在?

Cassandra 空键和不带';不存在?,cassandra,hector,Cassandra,Hector,使用MultigetSliceQuery时,结果将包含每个键的一行,即使该键不存在。测试的唯一方法可能是检查每行是否存在任何列 但是,如果我创建一个包含1个或多个列的行,然后删除所有列,则MultigetSliceQuery的结果将是相同的(就好像从来没有创建过该行一样) 使用CLI进行测试时,“列表CF”将显示空行键,但“获取CF[key]”将返回“返回0个结果” 没有任何列的行是否有效 是否有办法检查结果是否存在空vs? 如果执行MultigetSlice并枚举键,它将为每个键返回一个结果

使用MultigetSliceQuery时,结果将包含每个键的一行,即使该键不存在。测试的唯一方法可能是检查每行是否存在任何列

但是,如果我创建一个包含1个或多个列的行,然后删除所有列,则MultigetSliceQuery的结果将是相同的(就好像从来没有创建过该行一样)

使用CLI进行测试时,“列表CF”将显示空行键,但“获取CF[key]”将返回“返回0个结果”

没有任何列的行是否有效

是否有办法检查结果是否存在空vs?

如果执行MultigetSlice并枚举键,它将为每个键返回一个结果

对于cli,请参阅

空行中实际上有删除列的墓碑


如果您试图检索整行,但它返回的结果没有列,这实际上意味着该行不存在。

我认为这与墓碑无关,因为我没有删除键,只是删除所有列。我在单个节点上进行测试,GCGraceSeconds=0。但是,最后,不存在的行和没有列的行之间没有区别。每列都有墓碑,因此删除的每列都有墓碑。此外,即使GCGraceSeconds=0,也必须在删除墓碑之前进行压缩。虽然墓碑可能存在(删除后),但它们对我的行扫描没有影响(在我的问题中)。假设一致性,我发现行扫描将显示所有键,包括已删除的键(直接或删除所有列)。我还发现,在删除实际上不存在的行(按键)之后,行扫描现在将列出这些键!(所以那里没有墓碑)。澄清一下,每列墓碑和每行墓碑都有。当您删除一行时(不管它是否存在——Cassandra不会检查它是否存在),一个墓碑会被盲目地写入该行,因此墓碑将在范围扫描中显示。