O que é isolamento de instantâneo?

O isolamento de instantâneo é uma propriedade no processamento de transações e bancos de dados que garante que todas as leituras feitas em uma transação vejam o mesmo "instantâneo" do banco de dados. Isso significa que a transação se comprometerá a processar com êxito a solicitação se suas atualizações não entrarem em conflito com outras atualizações simultâneas. O isolamento de instantâneo é um algoritmo de controle para simultaneidade de várias versões que fornece níveis de isolamento que evitam os problemas que geralmente ocorrem com a simultaneidade. Esse isolamento foi implementado por vários servidores de linguagem de consulta estruturada (SQL) diferentes, operando com quantidades mínimas de anomalias de serialização. No entanto, os isolamentos de instantâneo não garantem a serialização completa em um servidor.

Muitos sistemas principais de gerenciamento de dados contêm níveis de isolamento padrão que não são serializáveis ​​e geralmente encontram anomalias de serialização sem isolamento de captura instantânea. Isso pode fazer com que grandes sistemas tenham inúmeras ocorrências de erros de isolamento todos os dias, o que pode levar à corrupção de dados, especialmente o encontrado em aplicativos de armazenamento de dados. A razão pela qual um sistema pode operar nesse estado é porque aplicativos executados em níveis mais baixos de isolamento podem melhorar a eficiência se nenhum erro grave ocorrer. A inclusão do isolamento de captura instantânea em um sistema reduz essas anomalias e - ao levar em consideração o tempo de operação e a quantidade de erros que ocorrem - aumenta ainda mais a eficiência.

Alguns bancos de dados oferecem isolamento de captura instantânea em oposição à capacidade total de serialização, mas também existem anomalias que podem ocorrer em um banco de dados utilizando esse tipo de isolamento. Essas anomalias podem levar a violações da consistência dos dados porque as transações que mantêm a consistência se intercalam ou são organizadas em camadas alternadas. A única maneira de resolver o problema e evitar anomalias como essas é manipular aplicativos com uma introdução de bloqueios artificiais e atualizações conflitantes, que foram seguidas pela análise dos conflitos entre cada par de transações. Uma maneira diferente de resolver essas anomalias, no entanto, é modificar os algoritmos do controle de simultaneidade de um sistema de banco de dados para fazer detecções automáticas e evitar anomalias de isolamento de captura instantânea em tempo de execução. Isso pode ser feito para aplicativos importantes ou arbitrários, mas fornece um isolamento serializável.

Os servidores SQL mais recentes foram capazes de introduzir novos níveis de isolamento, bem como novos níveis de isolamento de captura instantânea para aprimorar a simultaneidade em certos aplicativos. Nos casos em que as versões anteriores do servidor SQL usavam o bloqueio como base para a simultaneidade, o isolamento da captura instantânea depende dos aprimoramentos do controle de versão de linha, destinados a melhorar o desempenho. Ele melhora esse desempenho quando encontra cenários com bloqueio de leitura ou gravação, evitando-os.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?