我只是想了解在卡桑德拉複製的機制。我讀到數據分佈Datastax鏈路:卡桑德拉如何複製數據
http://www.datastax.com/docs/1.2/cluster_architecture/data_distribution
在一致的散列部它告訴卡桑德拉創建用於每個主密鑰散列值,並基於該數據發送到容納所生成的散列值的節點。之後,它顯示數據在羣集中的分佈。現在我的問題是,它如何根據散列值將此數據複製到羣集中的其他節點。
這可能是非常基本的問題。如果可能的話,請用示例來解釋
我只是想了解在卡桑德拉複製的機制。我讀到數據分佈Datastax鏈路:卡桑德拉如何複製數據
http://www.datastax.com/docs/1.2/cluster_architecture/data_distribution
在一致的散列部它告訴卡桑德拉創建用於每個主密鑰散列值,並基於該數據發送到容納所生成的散列值的節點。之後,它顯示數據在羣集中的分佈。現在我的問題是,它如何根據散列值將此數據複製到羣集中的其他節點。
這可能是非常基本的問題。如果可能的話,請用示例來解釋
找到複製方式取決於複製策略。對於SimpleStrategy與複製因子N無虛擬節點卡桑德拉執行以下操作:
隨後的N-1個節點作爲一個例子對鍵,假設節點具有令牌0,10,20,30和您的複製因子是2。如果您的鍵具有散列14然後它將被存儲在帶有令牌20和30的節點上。如果你的密鑰有ha sh 28然後它將被存儲在具有標記30和0的節點上。
如果使用虛擬節點,則使用相同的想法,但是如果物理節點已經收到密鑰,則虛擬節點將作爲副本被跳過。
如果使用NetworkTopologyStrategy,則在達到該數據中心的配額時跳過節點。
我瞭解到有關cassandra虛擬節點的分佈 http://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architectureDataDistributeDistribute_c.html。圖形的底部,每個虛擬節點在不同的物理節點上有3個副本,在分配虛擬節點時確定的複製範圍是多少?
謝謝理查德。這讓我想到它是如何工作的。還有一個問題就是:當你說環繞時,按照你給出的例子,當散列值爲28時,範圍爲30的節點按照規則2限定,但是它到零的節點,因爲它是環中的下一個節點。請建議我的理解是否正確。 –
是的,這是正確的。 – Richard
嗨,理查德,你能解釋一下NetworkTopologyStrategy的配額是什麼意思?這是您在創建密鑰空間時指定的內容嗎?如果DC僅包含一個機架,其複製配額是否會超過1?謝謝! – kirbo