Definição – o que significa durabilidade?
Durabilidade em bancos de dados é a propriedade que garante que as transações sejam salvas permanentemente e não desapareçam ou sejam apagadas acidentalmente, mesmo durante uma falha do banco de dados. Isso geralmente é obtido salvando todas as transações em um meio de armazenamento não volátil.
Durabilidade faz parte da sigla ACID, que significa atomicidade, consistência, isolamento e durabilidade. ACID é um conjunto de propriedades que garantem a confiabilidade de todas as transações do banco de dados.
Definirtec explica durabilidade
Existem várias organizações, como bancos e hospitais, cuja própria existência depende dos sistemas de informação que funcionam em bases de dados. A capacidade de recuperar 100% de todas as transações confirmadas é absolutamente crucial. A taxa de recuperação deve ser 100 por cento, não 90 por cento ou mesmo 99.6 por cento. Além disso, essa recuperação deve ser permanente, o que significa que todas as transações devem ser reconstruídas, mesmo se o servidor de banco de dados travar devido a falha do sistema operacional ou falta de energia.
Você pode ver imediatamente porque a durabilidade, como parte do ACID, é um santo graal para designers de sistemas de banco de dados relacionais. ACID, termo popularizado por Theo Harder e Andreas Reuter em seu artigo de 1983 “Principles of Transaction-Oriented Database Recovery”, é o conjunto de qualidades que, quando devidamente implementado, garantirá sempre o processamento, manuseio e armazenamento confiáveis de todos os bancos de dados transações.
A durabilidade em sistemas de banco de dados relacionais modernos geralmente é alcançada por meio de logs de transações – arquivos recicláveis - arquivos usados para armazenar todas as transações de banco de dados em uma sessão. Depois que um usuário emite um comando de confirmação, a transação é primeiro gravada nos arquivos de banco de dados armazenados em um meio não volátil, como um disco rígido, o que é feito antes de confirmar ao usuário que o salvamento ocorreu. Se um banco de dados travar antes de salvar, os dados ainda estarão nos logs de transações na próxima vez em que o banco de dados for reiniciado, mas quaisquer alterações não confirmadas serão desfeitas ou revertidas. Na computação distribuída, onde os servidores estão geograficamente dispersos, essa garantia é difícil ou complicada de implementar, portanto, o mesmo é obtido pelo uso do commit de duas fases.
Esta definição foi escrita no contexto de bancos de dados