У меня был кластер Cassandra из 3 узлов. Я выполнял некоторые действия по миграции 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 и как реплицируются данные.