Репликация кассандры не 100 процентов на каждом узле

У меня был кластер Кассандра из 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, то существует ли риск потери данных?

1 ответ

Решение

Это нормальная ситуация.

Скорее всего, у вас был коэффициент репликации 3, а с 3 узлами это привело к тому, что каждый узел имел реплики для всех других узлов. Когда вы добавили еще 2 узла, каждый узел будет сохранять 3/5 ваших данных - свой собственный диапазон (1/5 данных) + реплики (2/5 данных). Это не точно 60%, потому что данные не могут быть точно разделены между узлами - некоторые разделы могут быть больше, чем другие, и т. Д.

Я рекомендую вам прочитать Руководство по архитектуре DataStax - оно поможет вам лучше понять, как работает Cassandra и как реплицируются данные.

Другие вопросы по тегам