Alterando dinamicamente o cluster Cassandra de um nó para dois nós

2

Por isso, tenho um aplicativo que ficará muito inativo na maior parte do tempo, mas precisará ser interrompido alguns dias por mês. Como estamos implantando no EC2, gostaria de manter apenas um servidor Cassandra na maior parte do tempo e, em dias de estouro, quero trazer mais um servidor (com mais RAM e CPU do que o primeiro) para ajudar a atender a carga. Qual é a melhor maneira de fazer isso? Devo ter uma abordagem diferente?

Algumas notas sobre o que pretendo fazer:

  • Traga o nó para cima e repare-o imediatamente
  • Após o tempo de burst terminar a desativação, o nó poderoso
  • Use o servidor sempre ativo como o nó de origem

Minha principal questão é como obter os nós para compartilhar todos os dados, pois eu quero um fator de replicação de 2 (para que ambos os nós tenham todos os dados), mas isso não funcionará enquanto houver apenas um servidor. Devo abrir 2 servidores extras em vez de apenas um?

    
por Jason Axelson 23.08.2012 / 10:26

2 respostas

1

Parece que você pode facilmente alterar o fator de replicação .

Isso também é mencionado no Wiki da Cassandra , onde você pode encontrar instruções para aumentar e diminuir a replicação fator.

Isso significa que deve ser possível fazer isso:

  • altera o fator de replicação de 1 para 2
  • abrir e reparar seu nó de rajada para que receba uma cópia de todos os dados
  • ... funciona ...
  • nó de rajada de decomposição
  • altera o fator de replicação de 2 para 1
  • executar limpeza
por 27.08.2012 / 02:54
0

Alterar o fator de replicação em tempo real não funciona muito bem na minha experiência :-( Você pode acabar com discordâncias de esquema, que são demoradas para corrigir, pelo menos para mim.

Pensando em voz alta, mas outra possível rota poderia ser (mudar os horários para se adequar):

  1. Aumente seu período de tolerância do GC em cassandra.yaml (isso determina quanto tempo as lápides vivem antes de serem removidas do disco) para dizer 30 dias
  2. Gere um segundo nó a cada 15 dias, seja ele necessário ou não. Assegure-se de que os logs de dados / confirmações, etc., sejam preservados entre as execuções. Isso significa que você começará mais rápido quando precisar girar o segundo nó
  3. with more RAM and CPU than the first

O Cassandra divide efetivamente a carga de trabalho pela quantidade de anéis pelos quais cada nó é responsável. Pode ser mais fácil ter o segundo nó duplicando a capacidade do primeiro ou adicionar dois nós do mesmo tamanho que o primeiro, para facilitar a divisão do anel.

Isso ainda exigirá intervenção manual do nodetool ao descartar os nós, já que as handoffs sugeridas estarão preenchendo o disco desnecessariamente no nó restante.

    
por 03.09.2012 / 10:53