Não tenho certeza de como colocar minha pergunta em uma terminologia de banco de dados adequada. Mas aqui está.
Minha compreensão da leitura de dados no banco de dados relacional:
Em bancos de dados relacionais, como todas as colunas estão presentes, o sistema sabe quantos bytes uma linha ocupa no disco rígido. Portanto, ler uma linha é como ler um pedaço de bytes de memória de determinado tamanho (que é o mesmo para todas as linhas da tabela).
Como isso funciona em um armazenamento de dados noSQL como cassandra, pois as colunas não são obrigatórias e podem estar ausentes?
O que você está descrevendo é chamado de caminho de leitura e provavelmente é nesses termos que você encontrará documentação para qualquer tecnologia de banco de dados.
Especialmente para Cassandra:
Em primeiro lugar, você precisa escolher os nós apropriados:
Cassandra é um sistema distribuído e nem todos os nós contêm os dados de que você precisa. Cada nodo se encarrega de faixas de token. Quando você lê a chave de partição com hash, obtém um token e o Cassandra sabe em quais nós os dados estão. (é provável que cada dado esteja em vários nós, isso é algo chamado fator de replicação não detalhado aqui).
TLDR; Os dados são organizados em SSTable e as partições e deslocamentos relativos são armazenados.
Verifique a memória (MemTable) pois os dados estão lá antes do disco:
Verifica o filtro Bloom (o cache de linha não existe mais nas versões recentes do Cassandra)
Verifica o cache da chave de partição, se ativado
Vai diretamente para o mapa de compensação de compactação se uma chave de partição for encontrada no cache da chave de partição ou verifica o resumo da partição, caso contrário Se o resumo da partição for verificado, o índice da partição será acessado
Localiza os dados no disco usando o mapa de compensação de compactação
Busca os dados do SSTable no disco
Fonte, referência e detalhes