configuração da cassandra - carga irregular - o que fiz de errado?

1

Para entender, eu configuro um cluster de 4 nós usando a versão mais recente / melhor (liberada) do Cassandra. Os quatro nós foram criados em seqüência usando quase que totalmente as configurações padrão e parecem estar se comunicando adequadamente.

Eu então criei um esquema da seguinte forma:

CREATE KEYSPACE first WITH replication = {
  'class': 'SimpleStrategy',
  'replication_factor': '1'
};

Crie uma tabela simples com 5 colunas e adicione ~ 100 mil linhas de dados. Tudo bem e bem. Os dados estão disponíveis em todos os clientes, por isso estou pensando que está espalhado de maneira uniforme.

Então, estou analisando uma estratégia de backup e começando a mexer com instantâneos e assim por diante. Depois de executar nodetool snapshot em cada máquina, quero saber o que ela criou. Eu vou para a primeira máquina e vejo em / var / lib / cassandra / data / first e vejo que está vazio. Hmm .. segunda máquina .. mesma coisa .. terceiro .. finalmente na quarta máquina eu vejo arquivos na pasta de dados e um diretório de instantâneo.

A execução de nodetool ring mostra que cada sistema possui cerca de 25%, mas o carregamento é strongmente inclinado para o sistema que (parece ter) ter terminado com todos dados.

Todos os dados estão realmente nesta máquina? Qual etapa eu perdi na configuração?

    
por ethrbunny 11.11.2014 / 14:52

1 resposta

1

O Cassandra atribui intervalo de tokens a cada nó no cluster.

Como há 4 nós em sua configuração, 25% dos tokens são atribuídos a cada nó.

Toda consulta de inserção terá um hash gerado para esses dados de linha. O hash sempre pertencerá a um e somente um dos intervalos de token, portanto, esses dados de linha são armazenados nesse nó físico específico.

No seu caso, a maioria das consultas inseridas tem a mesma chave de partição ou semelhante, levando ao mesmo nó físico, ou seja, o nó 4.

Para mais detalhes, assista ao site do datastax explicando o particionamento.

    
por 26.01.2015 / 09:15

Tags