Eu tenho um modelo de multilocação
tenant_template (
tenant_id int,
sub_org_id int,
code text,
active bool,
......
)
com chave de partição -> (tenant_id, sub_org_id)
e chave de cluster ->code
temos que buscar todas as configurações ativas com a API de administração,
a linha ativa máxima pode ser de até 1000 (o tamanho da linha única seria em torno de 11 KB).
- é bom buscar todos os dados do banco de dados?
- qualquer prática recomendada para o número de linhas deve ser partição única
As regras básicas para particionamento no Cassandra são:
Mas não é arbitrário nem nada parecido e os testes de desempenho são sempre bem-vindos antes de entrar em produção. Grandes partições não são fáceis de mover e compactar.
Acho que o que você descreveu é bom.
Sim, 1.000 linhas são suficientes e são muito pequenas em comparação com muitos modelos de dados.
Cassandra pode ter no máximo 2 bilhões de células (ou 2 31 que é o tamanho de um número inteiro Java) em uma única partição. Se sua tabela tiver 10 colunas, isso representa um total de 10 mil células (
1000 rows x 10 columns
), o que está bem abaixo do limite.Supondo que você calculou o tamanho da linha corretamente, o tamanho da partição também estaria bem abaixo dos 100 MB/partição recomendados (não é um limite rígido, apenas uma recomendação).
Uma coisa importante a notar é que o que é bom para um cluster pode não ser necessariamente bom para outro. Existem muitos fatores que influenciam a avaliação se as condições descritas são aceitáveis. Isso inclui (mas não se limita a) caso de uso, padrões de acesso, hardware (CPU, memória, discos), carga de cluster e assim por diante.
Sempre recomendamos que você teste minuciosamente com cargas e dados de produção para determinar se seu modelo de dados é adequado para seu caso de uso. Saúde!