Níveis de isolamento

Transações e Tratamento de Erros no PostgreSQL

Jason Myers

Instructor

Concorrência

  • Coordenar várias operações ao mesmo tempo.
  • Traz problemas específicos em um banco de dados.
  • Usa regras chamadas níveis de isolamento para facilitar entender os resultados.
Transações e Tratamento de Erros no PostgreSQL

Leituras sujas

Leitura suja

Transações e Tratamento de Erros no PostgreSQL

Leitura não repetível

Leitura não repetível

Transações e Tratamento de Erros no PostgreSQL

Leitura fantasma

Leitura fantasma

Transações e Tratamento de Erros no PostgreSQL

Anomalia de serialização

Anomalia de serialização

Transações e Tratamento de Erros no PostgreSQL

Níveis de isolamento

Nível de isolamento Leitura suja Leitura não repetível Leitura fantasma Anomalia de serialização
Read Uncommitted Protegido (PostgreSQL) vulnerável vulnerável vulnerável
Read Committed Protegido vulnerável vulnerável vulnerável
Repeatable Read Protegido Protegido Protegido (PostgreSQL) vulnerável
Serializable Protegido Protegido Protegido Protegido
Transações e Tratamento de Erros no PostgreSQL

Efeitos dos níveis de isolamento

START TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Resultados das instruções

  • Resultado do primeiro SELECT: 5
  • Resultado do segundo SELECT: 6
Transações e Tratamento de Erros no PostgreSQL

Efeitos dos níveis de isolamento

START TRANSACTION ISOLATION LEVEL SERIALIZABLE; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Resultados das instruções

  • Resultado do primeiro SELECT: 5
  • Resultado do segundo SELECT: 5
Transações e Tratamento de Erros no PostgreSQL

Vamos praticar!

Transações e Tratamento de Erros no PostgreSQL

Preparing Video For Download...