您好我想知道是否有一些了解Cassandra的人可以帮助我。现在我正在使用调试器调查Cassandra的读取路径,但由于某种原因无法找到针对查询过滤行的列的特定位置。
我发出了两个问题:
“select * from tabl where name1 ='rowkey8888';”
和
“从tabl中选择name9,其中name1 ='rowkey999211';”
令我困惑的是,它们都被认为是SliceFromReadCommand命令和 与命令关联的SliceQueryFilter对象对于两者都是相同的:[reversed = false,slices = [[,]],count = 10000,toGroup = 0]
我的问题是,任何人都可以向我解释这种行为的原因,因为我在查询中给出了一个列名(在上面的例子中是name9)时的印象 该命令将是一个SliceByNamesReadCommand,指定的列将位于QueryFilter切片数组中。此外,任何人都可以指出这个过滤的位置,因为我找不到它?
答案 0 :(得分:1)
对于reasons related to TTL handling,C *实际上必须查询分区的“切片”,即使您为其指定了特定名称。
CollationController是开始代码潜水的好地方。