Controle de concorrência implementado pelo postgresql
David F. da Silva Gabriela B. Meurer Heric Miranda Sabrina Johanson
1
Instituto Federal Catarinense - Campus Araquari - (IFC-CA)
Resumo. O PostgreSQL mant´ m a consistˆ ncia dos dados utilizando o mode e elo MVCC, isso permite que cada transacao enxergue uma vers˜ o do banco de ¸˜ a dados. N´veis de isolamento de transacoes foram definidos para controlar a ı ¸˜ concorrˆ ncia, s˜ o eles: Read uncommitted, Read committed, Repeatable read e e a Serializable, os n´veis de isolamento usados no PostgreSQL s˜ o: Read commitı a ted e Serializable.
1. Introducao ¸˜
´ A t´ cnica de controle de concorrˆ ncia mais utilizada pelos SGBD’s e o bloqueio (lock), e e por´ m o PostgreSQL mant´ m os dados consistentes utilizando o modelo MVCC - Mule e tiversion Concurrence Control. Esse modelo permite que cada transacao enxergue uma ¸˜ vers˜ o do banco de dados (SNAPSHOT), isso impede que dados inconsistentes sejam a visualizados. ´ A diferenca entre o lock e o MVCC, e que no MVCC a os bloqueios de escrita n˜ o ¸ a conflitam com os bloqueios de leitura, assim a escrita de dados nunca bloqueia a execucao ¸˜ da leitura de dados e vice versa. Para controlar a concorrˆ ncia nos SGBD’s foram definidos quatro n´veis de isoe ı lamento de transacoes: Read uncommitted, Read committed, Repeatable read e Serializ¸˜ able. O PostgreSQL utiliza os n´veis Read committed e Serializable, por´ m ele tamb´ m ı e e oferece a possibilidade de utilizar bloqueios.
2. N´veis de Isolamento de Transacoes ı ¸˜
Em banco de dados, o n´vel de isolamento de transacao mede a independˆ ncia de uma ı ¸˜ e transacao em relacao aos dados lidos, que podem ser alterados por outras transacoes ¸˜ ¸˜ ¸˜ concomitantemente. Enquanto uma transacao lˆ os dados de determinadas linhas, outra ¸˜ e transacao pode estar alterando os mesmos dados, o que prejudica a integridade dessas ¸˜ consultas. ´ O n´vel de isolamento e escolhido pelo programador,