Tecnologia da Informação EmÁudio: Concorrência e Transações: MVCC
E aí pessoal? Tudo bem? Gente nesse em áudio nós vamos falar sobre a concorrência e as transações. Então, respira fundo coloca um sorriso no rosto e vamos juntos.
Então o postgreSQL é um FGB multiusuário, ou seja, dá suporte à utilização por mais de uma pessoa ao mesmo tempo.
Como sabemos, os SGBDs possuem recursos para lidar com os casos em que múltiplos usuários tentam acessar o mesmo dado no mesmo instante de modo a garantir que as transações concorrentes produzam resultados corretos. Este é o controle de concorrência, jovem.
No controle de concorrência os SGBDs geralmente utilizam estruturas chamadas locks ou bloqueios que são estruturas que permitem que uma transação bloqueie o acesso das demais a determinado dado enquanto o utiliza para que o isolamento seja mantido.
Esse tipo de estrutura de bloqueio, no entanto, pode gerar grandes esperas para se acessar o dado, sabia? Se uma transação muito demorada mantém um determinado dado bloqueado outras transações podem ficar um bom tempo esperando a liberação desse bloqueio para que possam ler ou escrever o dado.
Turma, em um cenário em que há muitas transações concorrentes isso pode gerar um grande problema de performance.
No postgreSQL a consistência dos dados é mantida por um modelo chamado MVCC Multiverso Cony ou o controle de concorrência multiversão em português. O MCC mantém múltiplas versões do mesmo dado chamadas de snapshots, os Snapchat são como se fossem fotografias do dado ao longo do tempo, registrando os valores que esse dado assumia em cada momento no tempo.
... Ler mais