cassandra de 4 nós - ignorar redundância?

1

Depois de muita argumentação e construção de casos, meu grupo conseguiu o orçamento para comprar 4 nós e iniciar um cluster de cassandra. Cada máquina tem drives 3x1Tb, então estou pensando se é razoável pular a redundância de 1 via e espelhar a (s) unidade (s) de dados.

Os dados serão armazenados em backup, o que não é um problema.

Parece que a probabilidade de perder uma máquina em um grupo tão pequeno é v baixa.

Isso é razoável ou estou sentindo falta de algum problema / fator maior?

    
por ethrbunny 15.02.2015 / 17:28

1 resposta

2

Isso realmente depende do que você está usando o cassandra. Você está usando para disponibilidade de seus dados, particionamento de seus dados ou ambos? A partir disso, você está usando mais para o particionamento de seus dados, para poder dimensionar seus dados.

Parte do motivo pelo qual você deseja replicar seus dados no cassandra é a disponibilidade. Se você tiver um cluster de 4 nós com um fator de replicação de 3, por exemplo, poderá sobreviver à perda de um nó sem precisar fazer nenhuma manutenção (com nível de consistência de quorum, 2 nós com nível de consistência 'um'). Por outro lado, cada um dos seus nós teria 75% dos dados no cluster, o que é provavelmente algo que você esperava evitar. É por isso que eu tentaria implorar por outro servidor ou dois, embora talvez você não precise dele imediatamente e possa adicionar mais servidores à medida que suas necessidades de dados aumentam.

Enquanto você menciona que perder uma máquina é improvável, executar com um fator de replicação de 1 é pedir problemas na minha opinião. Você pode nunca ter problemas, mas quando isso acontecer, não será divertido. Se você estivesse usando um servidor gigante para atender seu banco de dados, seria menos provável que ele falhasse em 1 de 4 servidores individuais, certo?

Há também outras coisas que podem fazer com que um nó da cassandra falhe ou pare de responder (falhas do sistema operacional, coleta de lixo, problemas de rede, etc.)

Quando você começa a usar um banco de dados distribuído, a tolerância a falhas deve se tornar mais mais preocupante do que quando se usa uma configuração de banco de dados tradicional e a cassandra se concentra nisso.

Eu tive experiências anteriores em que é difícil justificar as compras de hardware e a configuração do ambiente com o gerenciamento. A melhor maneira de levá-los a compreender as implicações é delinear um cenário de falha e se é ou não aceitável, por exemplo:

If one server has a hardware failure, data gets corrupted, or cassandra crashes, how long can we tolerate downtime?

Se a resposta for '0 minutos', você vai querer usar um fator de replicação de pelo menos 3. Há mais benefícios para isso também. Com um fator de replicação de 3, isso significa que mais nós podem atender a uma solicitação de leitura individual, melhorando potencialmente o desempenho de leitura.

Além disso, o espelhamento / RAID 1 é considerado um pouco anti-padrão com o Cassandra para seus dados (embora não seja uma má idéia para commitlogs). Seria melhor usar o RAID 0 ou vários diretórios de dados, definir seu fator de replicação como 3 e deixar que o cassandra cuide da redundância para você.

    
por 15.02.2015 / 18:08

Tags