2014-10-07 23 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的非常短的掃描。

綜上所述,分區摘要是分區索引文件,允許卡桑德拉執行尋道索引文件,然後在很短的掃描內的分隔的大致位置的內存中的採樣。