Léxico de TI › Bancos de dados › Double-write buffer

Double-write buffer

Bancos de dados Svenska → Atualizado: 2026-09-29

Um mecanismo do MySQL/InnoDB que protege contra "páginas rasgadas" — quando uma página é gravada só em parte durante uma queda de energia. O InnoDB grava a página primeiro no double-write buffer e depois no local definitivo, de modo que sempre existe uma cópia correta.

O problema: uma página de banco de dados (16 KB) é maior do que o disco garante gravar atomicamente (muitas vezes setores de 4 KB); uma queda de energia no meio da gravação pode deixar uma página pela metade, corrompida, que o WAL/redo log não consegue reparar (pois o redo assume uma página inicial consistente). A solução: o InnoDB grava a página primeiro, de forma sequencial, no double-write buffer (em disco) e só depois na posição real. Depois de uma falha, uma página rasgada pode ser restaurada a partir da cópia intacta no buffer. Custo: cada página é gravada duas vezes (I/O extra) — pode ser desligado em sistemas de arquivos e discos com gravação atômica (alguns SSDs, ZFS). O PostgreSQL resolve o mesmo problema com "full page writes" no WAL. Relacionado a redo log e checkpoint.

← Voltar ao léxico