2014-10-07 48 views
0

我在看: https://academy.datastax.com/courses/learning-cassandra-read-path/understanding-partition-summaries-and-indexes 我对这个演示文稿有疑问。cassandra的内部分区总结

分区摘要实际上代表什么? :)

我的第一个想法是它只是一个缓存,保持x%的密钥位置。 这意味着大约一个126的请求可以直接获得一个密钥,而其他125个必须传播整个表。 但我认为这是相当无效的。

我的第二个想法是,分区摘要是某种能够为指定的键给你一个范围,其中对于给定键的一行应该存在索引。 但我无法想象这是如何实现的?特别是如果此表应该是大小|分区索引|/index_interval

这使我的头脑可以的SSTable使许多条目特定的键另一个问题?

谢谢, krzychusan

回答

5

分区摘要是分区索引的采样。分区摘要是一种内存结构,可减少在索引内查找分区键所需的扫描时间。

一个非常简单的例子将有助于解释这个概念。

假设分区索引文件中有100个分区键:pk001到pk100。分区键以排序顺序存储,所以我们知道pk027在pk025之后。

在该过简化的示例,如果分区总结分别设置为每10个分区键样,那么它会包含一个地图到十个分区键和分区索引内的磁盘上的位置。例如,pk001 - >文件开头,pk010 - > pk010在索引文件中的位置,依此类推。

现在,当C *获取pk027的请求,它知道pk027位于pk020后。此外,摘要(每隔10个分区键都会采样)知道pk020的确切位置。

那么,C *做一个寻求pk020的基于汇总提供信息的索引文件中的位置。然后它执行从pk020到pk027的非常短的扫描。

综上所述,分区摘要是分区索引文件,允许卡桑德拉执行寻道索引文件,然后在很短的扫描内的分隔的大致位置的内存中的采样。