2014-03-30 45 views
0

卡桑德拉會適合這種情況嗎?範圍查詢T​​PS在Cassandra中線性擴展嗎?

  1. 只有一個單一表格(鍵/值)。
  2. 超多行像10萬億。
  3. 具有1000個服務器的羣集
  4. 50%:範圍/列表和密鑰提取的50%。 (範圍/列表的TPS會隨着它的增長而增加)

我知道Cassandra可以很好地適應繁重的寫入和讀取查詢,因爲密鑰由散列環自然分配。而且我也明白在分區方面會有最小的努力。

但是從他們的白皮書,我的見解是,它只會擴展查詢直接匹配密鑰。並且在範圍/列表查詢中不會真正擴展,因爲密鑰索引將像其他任何密鑰一樣存儲在少數服務器中。此外,單個範圍查詢有可能會觸及羣集中的每臺服務器以獲取密鑰。如果是這樣的話,當我添加更多的服務器時,範圍查詢將會變慢。

我想知道如果我的理解是正確的,也想知道範圍查詢是否實際上隨着鍵添加更多的服務器一起按比例線性增加。

我試圖找出我將來面臨的真正挑戰,因爲它像Google的規模一樣成長。

回答

0

你是對的,用散列分區器Cassandra將無法以任何形式的滿足範圍查詢的方式。然而Cassandra也支持ByteOrderedPartitioner,它以詞法排序分配鍵,這可以用於分區鍵的快速範圍掃描。

這種方法的一個問題是,你會犧牲自動手段甚至分配鑰匙。這意味着通過手動重新平衡來保持您的密鑰空間在節點間均勻分佈的操作負擔更重。根據你的情況,這個要求可以從簡單的煩惱到完全的阻斷器(如果插入不是非常頻繁,這個成本可能是可以接受的)。

有關ByteOrderedPartitioner的更多信息。

+0

感謝Daniel分享你的知識。 – user3474832