O Cassandra foi projetado para lidar com big data. O principal recurso do Cassandra é armazenar dados em vários nós, sem um único ponto de falha.
A razão para esse tipo de arquitetura do Cassandra é que a falha de hardware pode ocorrer a qualquer momento. Qualquer nó pode estar inativo. Em caso de falha, dados armazenados em outro nó podem ser usados. Portanto, o Cassandra foi projetado com sua arquitetura distribuída.
O Cassandra armazena dados em nós diferentes com uma arquitetura de moda distribuída ponto a ponto.
Todos os nós trocam informações entre si usando o protocolo Gossip . Gossip é um protocolo no Cassandra pelo qual os nós podem se comunicar uns com os outros.
Neste tutorial, você aprenderá-
- Componentes de Cassandra
- Replicação de dados
- Operação de gravação
- Leia a operação
Componentes de Cassandra
Existem os seguintes componentes no Cassandra;
- Nó
Nó é o local onde os dados são armazenados. É o componente básico do Cassandra.
- Centro de dados
Uma coleção de nós é chamada de datacenter. Muitos nós são categorizados como um data center.
- Grupo
O cluster é a coleção de muitos datacenters.
- Commit Log
Cada operação de gravação é gravada no Log de confirmação. O log de confirmação é usado para recuperação de falhas.
- Mesa-mem
Depois que os dados são gravados no log de confirmação, os dados são gravados na tabela de memória. Os dados são gravados na tabela Mem temporariamente.
- SSTable
Quando a tabela de memória atinge um certo limite, os dados são enviados para um arquivo de disco SSTable.
Replicação de dados
Como podem ocorrer problemas de hardware ou o link pode ficar inativo a qualquer momento durante o processamento dos dados, é necessária uma solução para fornecer um backup quando o problema ocorrer. Assim, os dados são replicados para garantir nenhum ponto único de falha.
O Cassandra coloca réplicas de dados em nós diferentes com base nesses dois fatores.
- Onde colocar a próxima réplica é determinado pela Estratégia de Replicação .
- Enquanto o número total de réplicas colocadas em nós diferentes é determinado pelo Fator de Replicação .
Um fator de replicação significa que há apenas uma única cópia dos dados, enquanto três fatores de replicação significa que há três cópias dos dados em três nós diferentes.
Para garantir que não haja um único ponto de falha, o fator de replicação deve ser três.
Existem dois tipos de estratégias de replicação no Cassandra.
SimpleStrategy
SimpleStrategy é usado quando você tem apenas um data center. SimpleStrategy coloca a primeira réplica no nó selecionado pelo particionador. Depois disso, as réplicas restantes são colocadas no sentido horário no anel do nó.
Aqui está a representação pictórica da SimpleStrategy.
NetworkTopologyStrategy
NetworkTopologyStrategy é usado quando você tem mais de dois data centers.
Em NetworkTopologyStrategy, as réplicas são definidas para cada data center separadamente. NetworkTopologyStrategy coloca réplicas no sentido horário no anel até atingir o primeiro nó em outro rack.
Essa estratégia tenta colocar réplicas em racks diferentes no mesmo data center. Isso ocorre porque às vezes podem ocorrer falhas ou problemas no rack. Então, as réplicas em outros nós podem fornecer dados.
Aqui está a representação pictórica da estratégia de topologia de rede
Operação de gravação
O coordenador envia uma solicitação de gravação para réplicas. Se todas as réplicas estiverem ativas, elas receberão uma solicitação de gravação independentemente de seu nível de consistência.
O nível de consistência determina quantos nós responderão de volta com a confirmação de sucesso.
O nó responderá de volta com a confirmação de sucesso se os dados forem gravados com sucesso no log de confirmação e memTable.
Por exemplo, em um único data center com fator de replicação igual a três, três réplicas receberão a solicitação de gravação. Se o nível de consistência for um, apenas uma réplica responderá com a confirmação de sucesso e as duas restantes permanecerão inativas.
Suponha que se as duas réplicas restantes perderem dados devido a inatividade do nó ou algum outro problema, o Cassandra tornará a linha consistente pelo mecanismo de reparo integrado no Cassandra.
Aqui é explicado como ocorre o processo de gravação no Cassandra,
- Quando a solicitação de gravação chega ao nó, em primeiro lugar, ele registra no log de confirmação.
- Em seguida, Cassandra grava os dados na tabela de memória. Os dados gravados na mem-table em cada solicitação de gravação também gravam no log de confirmação separadamente. Mem-table são dados armazenados temporariamente na memória enquanto o registro de commits registra os registros de transações para fins de backup.
- Quando a mem-table está cheia, os dados são descarregados no arquivo de dados SSTable.
Leia a operação
Existem três tipos de pedidos de leitura que um coordenador envia para réplicas.
- Pedido direto
- Pedido resumido
- Leia o pedido de conserto
O coordenador envia solicitação direta a uma das réplicas. Depois disso, o coordenador envia a solicitação de resumo para o número de réplicas especificado pelo nível de consistência e verifica se os dados retornados são dados atualizados.
Depois disso, o coordenador envia a solicitação de resumo para todas as réplicas restantes. Se algum nó fornecer um valor desatualizado, uma solicitação de reparo de leitura em segundo plano atualizará esses dados. Este processo é denominado mecanismo de reparo de leitura.
Resumo
Este tutorial explica a arquitetura interna do Cassandra e como o Cassandra replica, grava e lê dados em diferentes estágios. Além disso, aqui ele explica como o Cassandra mantém o nível de consistência ao longo do processo.