Изменение фактора репликации в Кассандре

Опубликовано: 16 Августа, 2021

В этой статье мы собираемся обсудить, как мы можем изменить коэффициент репликации как в простой стратегии репликации, так и в стратегии репликации сетевой топологии. Для лучшего понимания обратитесь к статье «Стратегия репликации в 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 ремонт -полный