Em 29 de julho de 2011 09:03, Emanuel Araújo <[email protected]> escreveu:

> Srs,
>
> Gostaria de uma breve explicação sobre o fsync, O mesmo originalmente
> setado como ON é o responsável pela baixa de transações do WAL para a base
> ou pela baixa de transações em memória para o log de transações?
> Corrijam-me se eu estiver errado.  O que acontece, vi em várias discussões
> sobre setar o fsync para off para obter um maior desempenho de escrita no
> banco, claro, garantindo a integridade da máquina (hardware/software) e da
> energia.
>
> Quando setamos o mesmo para OFF, como ele interage?  Ele, ao commitar, vai
> direto para o banco? fica em memória e depois tem algum processo do tipo
> writer e commita? e os logs de transação, são criados também?
>

Desligar o FSYNC equivale a não ter mais ACID, não ter um banco
transacional. Toda vez que você realiza um COMMIT, um registro precisa ser
gravado no WAL. Se você desligar o FSYNC o SO não vai mais esperar a
gravação terminar para liberar o seu COMMIT. Resultado: operações de DML
decolam. Mas.... com um processo de COMMIT assíncrono, você pode corromper o
WAL em caso de falha de hardware/software/faxineira-puxa-cabos.

Se o WAL corromper, você vai ter de resetar ele e vai perder as últimas
transações gravadas nele. Isso pode não ser divertido. Mas se você tem
certeza absoluta que o seu hardware/software/faxineira-puxa-cabos estão 100%
sob controle, então ligue. Se você não liga em perder as últimas transações
(como numa aplicação no estilo twitter) e você pode trocar desempenho por
segurança sem dramas, vai fundo.

Muita gente desliga o FSYNC antes de uma carga mais pesada. A partir da
versão 9.1 será possível eleger tabelas no modo NOLOGGING. Estas não irão
gerar registros no WAL. Uma ótima pedida para cargas temporárias e "tabelas
temporárias globais".

Agora, se o seu problema é performance em leitura, desligar o FSYNC não vai
mudar o desempenho.

-- 
Atenciosamente,
Fábio Telles Rodriguez
blog: http://www.midstorm.org/~telles/
e-mail / gtalk / MSN: [email protected]
Skype: fabio_telles
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a