Изменение фактора репликации в Кассандре
В этой статье мы собираемся обсудить, как мы можем изменить коэффициент репликации как в простой стратегии репликации, так и в стратегии репликации сетевой топологии. Для лучшего понимания обратитесь к статье «Стратегия репликации в Cassandra».
Изменение ключевого пространства:
Чтобы изменить коэффициент репликации, вы можете выполнить оператор «Изменение пространства ключей», в котором вы можете изменить коэффициент репликации для простой стратегии и стратегии NetworkTopology.
Например:
Изменение коэффициента репликации для SimpleStrategy:
Если вы хотите изменить коэффициент репликации пространства ключей, вы можете сделать это, выполнив команду ALTER KEYSPACE, которая имеет следующий синтаксис:
Синтаксис: ALTER KEYSPACE "Имя ключевого пространства" С репликацией = {'class': 'Название стратегии', 'replication_factor': 'Кол-во реплик'};
Во-первых, вы можете создать любое пространство ключей, а затем изменить коэффициент репликации или, если у вас есть существующее пространство ключей, вы можете изменить его таким же образом.
Пример: создание пространства ключей WFH.
СОЗДАТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО WFH С репликацией = { 'класс': 'SimpleStrategy', 'коэффициент_репликации': '2' } И длительный_записи = истина;
Теперь здесь вы можете изменить коэффициент репликации на такой же.
cassandra @ cqlsh> ИЗМЕНИТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО WFH ... С репликацией = ... { ... 'класс': 'SimpleStrategy', ... 'коэффициент_репликации': '3' ...} ... И длительное_писывание = истина;
Теперь, чтобы проверить результат, вы можете выполнить следующий запрос CQL.
cassandra @ cqlsh> описать WFH;
Выход:
СОЗДАТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО wfh С УЧАСТИЕМ репликация = { 'класс': 'SimpleStrategy', 'коэффициент_репликации': '3' } И длительный_записи = истина;
В Cassandra вы устанавливаете стратегию репликации на уровне пространства ключей при создании пространства ключей или позже, изменяя пространство ключей.
Изменение коэффициента репликации для NetworkTopologyStrategy:
В этом случае вы можете рассмотреть существующее пространство ключей, в котором вы хотите изменить коэффициент репликации для NetworkTopologyStrategy.
Пример: существующее пространство ключей: app_data
вы можете увидеть описание пространства ключей app_data, выполнив следующий запрос CQL.
cassandra @ cqlsh> описать app_data;
Выход:
СОЗДАТЬ KEYSPACE app_data С репликацией = {'class': 'NetworkTopologyStrategy', 'датацентр1': '3', 'датацентр2': '2'} И длительный_записи = истина;
Теперь, если мы хотим изменить коэффициент репликации для центра обработки данных 2 с 2 на 3, вы можете выполнить следующий запрос CQL, приведенный ниже.
cassandra @ cqlsh> ALTER KEYSPACE app_data ... С репликацией = ... { ... 'class': 'NetworkTopologyStrategy', ... 'датацентр1': '3', ... 'датацентр2': '3' ...} ... И длительное_писывание = истина;
Теперь, чтобы проверить результат, вы можете выполнить следующий запрос CQL.
cassandra @ cqlsh> описать app_data;
Выход:
СОЗДАТЬ KEYSPACE app_data С репликацией = { 'class': 'NetworkTopologyStrategy', 'датацентр1': '3', 'датацентр2': '3' } И длительный_записи = истина;
- Примечание:
- В Cassandra вы не можете изменить имя пространства ключей.
- Всегда рекомендуется после изменения коэффициента репликации или любой модификации выполнить команду восстановления.
- Вы можете выполнить следующий запрос CQL для полного восстановления.
nodetool ремонт -полный