Cassandra - planejamento de hardware

6

Resumidamente: se eu tiver 5 TB de dados e quiser implantar isso em 5 servidores cassandra - cada máquina precisa ter 5 TB de espaço em disco para dados (sem contar com o espaço de log)? A partir dos documentos, parece que, às vezes, o cassandra precisará de 2x o tamanho dos dados - então 10Tb / server ou 10Tb total no array?

Quanta RAM cada máquina deve ter? Suponha que o 5Tb esteja todo no mesmo espaço de coluna. Eu estava planejando maximizar a RAM em cada máquina, mas não tenho certeza de que seja o suficiente. Preciso de uma matriz de servidores com um total de 5Tb de RAM?

    
por ethrbunny 23.12.2012 / 17:30

3 respostas

6

Se você distribuir uniformemente seus 5 TB de dados em seus 5 servidores, cada servidor hospedará 1 TB de dados. Por causa das necessidades de compactação, cada servidor precisará de 2 TB de espaço em disco (no pior dos casos, uma compactação precisa do dobro de espaço no disco do que os dados), o que significa 10 TB no cluster.

O caso acima é onde você armazena apenas uma única réplica de seus dados entre o cluster. Nesse caso, se um servidor falhar, um quinto de seus dados ficará inacessível. Se você quiser armazenar 2 réplicas de seus dados no cluster, cada nó precisará de 4 TB de espaço em disco, o que significa 20 TB no cluster.

    
por 23.12.2012 / 20:56
3

Supondo que todos os dados estejam na RAM, essa é uma máquina enorme e cara. Felizmente, na maioria dos aplicativos, você não precisa manter todos os seus dados na memória, mas apenas seus dados ativos / ativos.

O Cassandra é capaz de recuperar automaticamente dados do HD para a RAM quando a entrada está ausente da memória. Por outro lado, quando o registro em não acessos é expulso da memória (dados "frios"). Você pode comparar o Cassandra como um cache no nível do aplicativo, em que as entradas são linhas da conta. Os acertos / erros do cache, neste caso, podem ser interpretados como registros no disco do sistema de arquivos do cassandra, que devem ser trazidos de volta na memória.

Então, em termos de dimensionamento:

  • O HDD é dimensionado para o conjunto de dados total
  • A RAM é dimensionada para reduzir "falhas de cache"
  • O fator de replicação afeta a taxa de transferência e a resiliência

Então, falando sobre RAM: Você só precisa manter dados suficientes na memória para evitar re-buscar desnecessariamente do disco. É muito dependente de aplicativos. Gostaria de sugerir a execução de alguns testes comparativos para verificar quantas sessões ativas você recebe por dia em relação à quantidade total de sessões armazenadas no sistema. Isso se aplica bem se o seu sistema é lido dominado e lê exibir localidade temporal.

Verifique também este tópico para mais inspiração link

Esta relação de dados em tempo real versus dados totais determina os requisitos de RAM para o seu sistema. Essencialmente, é uma desvantagem dos custos com cassandra e RAM. Considerações semelhantes - em um nível diferente - aplicam-se ao design do cache da cpu.

    
por 16.12.2013 / 17:44
2

A cassandra sugeriu espaço em disco por nó para o desempenho é de 1/2 terabyte, então, a menos que você queira esperar por compactações extremamente longas e longos tempos de mapeamento / redução, você deve repensar quantas máquinas são necessárias.

    
por 24.12.2012 / 04:59

Tags