Fsync off na produkcji, fsync on na replikacji

0

Powiedzmy, że mam serwer PostgreSQL produkcyjny oraz drugi na replikację.

Ustawiam fsync Off na produkcji, oraz fsync On na replikacji.

Zdarza się crash produkcji / np. awaria dysku - czy w takiej sytuacji:

  • na produkcji mogę mieć korupcję
  • z replikacji odtworzę już spójną bazę danych

?

Korzyści w takiej sytuacji są oczywiste bo wyłączenie fsync powoduje znaczne przyspieszenie operacji zapisu, a jednocześnie nie martwię się crashem na produkcji, bo mam spójną replikację.

3

Możliwe, że nie odtworzysz. O ile się orientuję, postgresowa replikacja działa w oparciu o dane zapisane w WALu. Jeśli jak masz fsync off + przeplot:

  1. Commit
  2. Zapis do WALa zbuforowany
  3. Crash produkcji

Zapis do WALa zginie, więc nie będzie z czego przenieść zmiany na replikę. Commit przeszedł, z ACID zostało C I A ;-)

0

Nie mam jeszcze żadnego doświadczenia z replikacją, będę dopiero to za jakiś czas ustawiał.

Kiedy będę to robił to przyjrzę się w jaki sposób jest to robione, czyli czy jest tak jak piszesz, czy mozna to robić w jakiś inny sposób.

Idealnie byłoby: commit na produkcji = wysłanie danych do replikacji, z ominięciem WAL-a.

1 użytkowników online, w tym zalogowanych: 0, gości: 1