Leituras no Postgres que causam escritas: MVCC, Limpeza de páginas e bits de dica

2024-12-25

Este artigo investiga o comportamento aparentemente paradoxal no PostgreSQL, onde consultas SELECT simples podem disparar gravações de dados. Começando com o mecanismo de Controle de Concorrência de Versões Múltiplas (MVCC), ele explica conceitos como versões de linhas, páginas e tuplas. Através de exemplos de código, ele analisa como as atualizações de bits de dica e a limpeza de páginas fazem com que operações de leitura modifiquem páginas, levando em última análise a gravações em disco. O artigo também discute a estratégia de otimização de atualização HOT e usa ferramentas de inspeção de páginas para ilustrar como os dados são armazenados e atualizados dentro das páginas.

Leia mais