Estou avaliando o melhor projeto para nossa instalação Cassandra.
Não há muitas informações na Internet sobre como usar os dois primeiros níveis de acesso que o Cassandra oferece — espaços de chave e famílias de colunas .
Estou me perguntando se e quais serão as penalidades se você optar por criar uma grande quantidade de keyspaces ou famílias de colunas (> 10.000).
Uma postagem de blog antiga em algum lugar sugeria que Cassandra reserva memória para cada família de colunas. O artigo era sobre a versão 0.6 e a versão atual é 1.0. Este ainda é o caso e um problema real?
Quais são as penalidades de usar muitos milhares de famílias de colunas ou keyspaces no Cassandra?
O Cassandra 1.0 usa no mínimo 1 MB de heap por CF. Portanto, 1.000 ou 2.000 CFs serão adequados para tamanhos de heap típicos, mas 10.000 provavelmente não. JVM GC funciona mal com heaps muito grandes; Eu recomendo ficar com menos de 8 GB.
A inicialização de um nó Cassandra começará a demorar muito mais se você tiver muitas famílias de colunas. Isso também afetará a quantidade de memória que está sendo usada.
Assim, essa quantidade de memória não será usada para caches de linha/chave e indexação. O desempenho pode piorar ainda mais à medida que você continua adicionando famílias de colunas, dependendo do hardware específico de seus nós.