Desvendando Cassandra – prt 02

COMMIT LOGS, MEMTABLES, AND SSTABLE

Uma gravação é bem sucedida depois de gravada no commit log  e na memtable. Memtable é liberado para SSTable assim que atinge o limite.

Memtable é uma estrutura em memória para CQL table e os indices. Dados em memtable são armazenados pela chave de linha de tabela. Essas estruturas de chave são gravadas sequencialmente quando enviadas a disco como SSTable.

SSTable significa “tabela de strings classificadas”.

A cada flush  uma nova SSTable é gerada com os dados ordenados da memtable.

Podemos encontrar a configuração de commit log  e diretório de dados no arquivo: cassnadra.yaml

Commitlog_directory: <configuração do commit log>

Data_file_directories: <configuração dos datafiles>

TOMBSTONES

Tombstones (ou lápides) são gerados quando uma linha inteira é excluída ou apenas um valor de coluna é excluído. Cassandra não grava valores null. Caso tente-se realizar uma atualização ou uma exclusão que for gerar um valor null, Cassandra excluirá a célula e gerará uma marca para exclusão.

Qualquer operação de exclusão de linha ou célula será um processo de gravação. Todas as operações de gravação no Cassandra são sequenciais o que faz com que seja optimizado desempenho.

Cassandra não exclui uma informação imediatamente, ele marca na memtable como “deleted”. A razão para isso é para que haja tempo para todos os nós com a replica dos dados entendam essa marca de exclusão. Um nó de replica set fora por exemplo, ele volta a topologia e assim verifica a marca e entende que aquele dado está marcado para exclusão. Quando realizado o flush da memtalbe para SSTable, o “deleted” é gravado.

Os tombstones existem em SSTalbes e são removidos pelo processo de compactação após gc_grace_seconds passar.

O gc_grace_seconds que indica o mínimo de tempo que o dado permanece com a marca de exclusão antes de ser realmente excluido. Por padrão o valor de gc_grace_seconds é de 86400 segundos (10 dias).

Passados os 10 dias, os dados então são elegíveis para exclusão e a compactação realmente aconteça. Compactação é quando as SSTables são combinadas para prover performance para leitura devido ao número de tabelas SSTables e para recuperar o espaço em disco do dado deletado.

A compactação é normal e automática embora possa ser iniciada manualmente usando o comando nodetool compact.

Figura 2.1 – Estrutura de I/O Cassandra

Publicado em CASSANDRA

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Arquivos
Follow SQL DATA BLOG on WordPress.com
Mais acessados
  • Nenhum
%d blogueiros gostam disto: