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
