Pelo que eu sei, quando criamos um índice clusterizado, ele reestrutura a tabela no formato B-Tree e usa pesquisa binária quando tentamos encontrar uma linha específica. SSTable também é classificado por chave. Por que precisamos do Sparse Index como tabela de referência para este caso? Como isso difere do B-Tree em relação à pesquisa se eles são ordenados por chave? Por que aplicar a pesquisa binária não é suficiente?
Tentei encontrar o uso exato do índice esparso e tentei entender por que ele é necessário como tabela de referência se não precisamos desse tipo de coisa para índice clusterizado e não encontrei nenhuma resposta para essa pergunta.
Cassandra usa vários esquemas para acelerar o processo de recuperação de dados.
Um desses esquemas inclui um índice de partições e seu deslocamento de disco correspondente. Este índice de partição possui um resumo de partição correspondente que contém uma amostra de N chaves de partição e um mapa para sua localização no índice de partição.
Ao recuperar dados, Cassandra verifica o resumo da partição para obter o local "mais próximo" da partição, economizando tempo por não ter que verificar todo o índice da partição.
Imagine um nó que possui mais de 100 mil SSTables. Sem o índice, Cassandra precisaria verificar todos esses arquivos para recuperar os dados solicitados. Com os índices e caches, a recuperação de dados é muito mais rápida em ordens de magnitude.
Se você estiver interessado nos detalhes, consulte Como Cassandra lê dados . Saúde!