Cassandra Secondary-Index如何在内部运作?文档说它是某种哈希索引:
鉴于我username="foobar"在CF中User有colum(列用户名将是scondary index)RandomOrderingPartitioner
在哪些节点上保存索引部分(Cassandra是否使用与RandomOrderingPartitioner的键相同的逻辑拆分索引)?
如果索引仅保留在一个节点上(当然也是复制的),cassandra如何"确定"负责索引的节点(通过对列名进行散列,然后使用randompartitioner logik来确定节点)?
这个指数是否针对低基数进行了优化,这是真的吗?如果是,那么粗略估计是什么(我可以使用具体的数字来判断),我不应该使用二级索引(而是使用单独的CF作为索引)?或者说不同如何计算基数并做出正确的决定?
我想了解这一点.
zzn*_*ate 11
二级索引基本上只是另一个列族.用户无法直接访问它们,但您可以通过JMX bean查看统计信息:org.apache.cassandra.db.IndexedColumnFamilies
您可以参考此处的统计信息来衡量索引的有效性,就像普通列族一样.
有关详细信息,请参阅以前的帖子:
由于你有一个hector标签,这里有一个指向IndexedSlicesQuery测试用例的链接:https: //github.com/rantav/hector/blob/master/core/src/test/java/me/prettyprint/cassandra/model /IndexedSlicesQueryTest.java