devterview_$ iniciar simulação

Níveis de isolamento de transação no PostgreSQL

DifícilSêniorTransações

Pergunta

Explique os níveis de isolamento de transação do PostgreSQL e qual problema cada um resolve (dirty read, non-repeatable read, phantom read).

Resposta esperada

Read Uncommitted (não implementado de fato no Postgres, se comporta como Read Committed) permitiria dirty reads. Read Committed, o padrão, evita dirty reads mas permite non-repeatable reads e phantom reads. Repeatable Read evita dirty e non-repeatable reads, mas o Postgres também evita phantom reads nesse nível via MVCC (mais forte que o padrão SQL exige). Serializable garante que o resultado é equivalente a executar as transações uma de cada vez, ao custo de mais falhas de serialização que exigem retry.

Por que perguntam isso

Pergunta de nível sênior: testa se o candidato conhece MVCC além do nome. Uma resposta forte cita que o Postgres implementa Repeatable Read de forma mais rígida que o padrão SQL — detalhe que só quem já leu a documentação ou debugou um caso real sabe.

#transacoes#mvcc#postgresql
publicidade

Relacionadas