Cassandra
每個節點上的 cassandra 複製不是 100%
我有 3 個節點的 Cassandra 集群。我正在執行一些 colud 遷移活動,為此,我在現有集群中添加了兩個節點,結果如下。
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 192.168.1.5 24.07 GB 256 59.4% 804b855f-78f3-42d6-8abf-b9aec73699df rack1 UN 192.168.1.6 24.77 GB 256 59.8% 21f2066f-1794-485c-9c4f-d6d1b286a551 rack1 UN 172.16.2.20 15.96 GB 256 60.3% 2c2f512d-5743-4632-a4b5-cd2cac967897 rack1 UN 172.16.2.21 12.76 GB 256 60.0% 657ff1b6-773a-4782-a506-c4899cdf2a4f rack1 UN 192.168.1.7 17.69 GB 256 60.5% c8c4bc41-4b5c-41e6-bb71-ab90c2ed5eb0 rack1
OWNS 欄位以前對於所有節點都是 100%,現在它顯示不同的數字,所以是否像整個 100% 數據不在每個節點上一樣,假設我通過關閉 Cassandra 來關閉任何節點,那麼是否存在數據失去的風險?
這是正常情況。
很可能您的複制因子為 3,並且對於 3 個節點,這導致每個節點都有所有其他節點的副本。當您再添加 2 個節點時,每個節點將保留 3/5 的數據 - 它自己的範圍(數據的 1/5)+ 副本(數據的 2/5)。這不是精確的 60%,因為數據可能不會在節點之間完全拆分 - 某些分區可能比其他分區更大,等等。
我建議您閱讀DataStax 架構指南- 它會讓您更好地了解 Cassandra 的工作原理以及數據的複制方式。