Qual é a diferença entre fsync
e synchronous_commit
? Eu li a documentação, a única coisa que entendi é que os dois estão tentando fazer atualizações fisicamente gravadas no disco.
relate perguntas
-
Posso ativar o PITR depois que o banco de dados foi usado
-
Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo
-
Os procedimentos armazenados impedem a injeção de SQL?
-
Sequências Biológicas do UniProt no PostgreSQL
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
Quando
fsync
está OFF, o servidor PostgreSQL nunca emitirá nenhumafsync
chamada de sistema, deixando inteiramente para o sistema operacional a decisão de quais blocos transferir do cache de gravação para o disco e quando. O mecanismo de banco de dados nunca sabe o que foi sincronizado ou não. Em caso de falha do servidor, deve-se presumir que o banco de dados está em um estado inconsistente.Quando
synchronous_commit
está OFF, o servidor emitefsync
uma chamada, mas não necessariamente imediatamente no momento do commit para cada transação. Pode atrasá-los após o commit, no máximowal_writer_delay
multiplicado por 3. Com uma configuração padrão seria 600ms. Isso permite reduzir o número de chamadas fsync, especialmente para cargas de trabalho com muitas transações pequenas. Em caso de falha do servidor, as transações ainda não sincronizadas nos últimos 600ms antes da falha podem ser revertidas, mas o estado do banco de dados é sempre consistente.