o que é a persistência dos dados e por que isso importa?

para mais informações sobre a persistência em Cassandra e outras bases de dados NoSQL, confira O que é NoSQL?

compreender o significado da persistência é importante para avaliar diferentes sistemas de armazenamento de dados. Dada a importância do armazenamento de dados na maioria das aplicações modernas, fazer uma escolha mal informada pode significar um tempo de inatividade substancial ou perda de dados. Neste post, vamos discutir a persistência e abordagens de design de armazenamento de dados e fornecer alguns antecedentes sobre estes no contexto de Cassandra.

persistência é “a continuação de um efeito após a sua causa ser removida”. No contexto do armazenamento de dados em um sistema de computador, isso significa que os dados sobrevivem após o processo com o qual foi criado ter terminado. Por outras palavras, para que um armazenamento de dados seja considerado persistente, deve escrever para um armazenamento não volátil.

Se você precisa de persistência em seu armazenamento de dados, então você precisa também entender as quatro homem de abordagens de design que um arquivo de dados pode levar e como (ou se) estes projetos prover persistência:

  • Pura na memória, sem a persistência, como memcaches ou Scalaris

  • Na memória com instantâneos periódicos, tais como Oracle Coherence ou Redis

  • baseado em Disco com a atualização no local de gravações, como o MySQL ISAM ou MongoDB

  • Commitlog baseada, como todos os tradicionais bancos de dados OLTP (Oracle, SQL Server, etc.)

as abordagens na memória podem atingir uma velocidade vertiginosa, mas ao custo de ser limitado a um conjunto de dados relativamente pequeno. A maioria das cargas de trabalho tem um subconjunto relativamente pequeno “quente” (ativo) de seus dados totais; sistemas que requerem todo o conjunto de dados para caber na memória ao invés de apenas a parte ativa são bons para caches, mas um mau ajuste para a maioria das outras aplicações. Como os dados estão apenas na memória, não sobreviverá à terminação do processo. Por isso, estes tipos de armazenamento de dados não são considerados persistentes.

a maneira mais fácil de adicionar persistência a um sistema de memória é com instantâneos periódicos para o disco em um intervalo configurável. Assim, você pode perder até o valor desse intervalo de atualizações.

Atualização in-loco e commitlog baseada em sistemas de armazenamento de memória não-volátil imediatamente, mas apenas commitlog baseado persistência proporciona maior Durabilidade — D em ÁCIDO — com cada gravação persistente antes de sucesso é retornado para o cliente.Cassandra implementa um projeto de persistência baseado em commit-log, mas ao mesmo tempo fornece níveis de durabilidade ajustáveis. Isso permite que você decida qual é a troca certa entre Segurança e desempenho. Você pode escolher, para cada operação de escrita, esperar que essa atualização seja buffer de memória, escrito em disco em uma única máquina, escrito em disco em várias máquinas, ou até mesmo escrito em disco em várias máquinas em diferentes centros de dados. Ou, você pode optar por aceitar escreve o mais rápido possível, reconhecendo o seu recibo imediatamente antes mesmo de terem sido totalmente deserializados a partir da rede.

no final do dia, você é o único que sabe o que o desempenho certo/durabilidade trade off é para os seus dados. Tomar uma decisão informada sobre tecnologias de armazenamento de dados é fundamental para abordar este comércio em seus termos. Porque Cassandra fornece tal tuneability, é uma escolha lógica para sistemas com uma necessidade de uma durável, armazenamento de dados performant.

Deixe uma resposta

O seu endereço de email não será publicado.