Jak sumy kontrolne danych współdziałają z replikacją strumieniową?

11

Sumy kontrolne danych to nowa funkcja wprowadzona w wersji 9.3 oraz:

wprowadzono nowy parametr GUC „ignore_checksum_failure”, który zmusi PostgreSQL do dalszego przetwarzania transakcji, nawet jeśli zostanie wykryte uszkodzenie

W przypadku awarii sumy kontrolnej na wzorca replikacji uszkodzone dane zostaną zreplikowane do urządzeń podrzędnych lub replikacja zostanie zatrzymana. Czy to zależy od ustawienia ignore_checksum_failure?

Ten plik README zawiera przydatne informacje, ale nie odpowiada bezpośrednio na pytanie.

Jack mówi, że spróbuj topanswers.xyz
źródło
6
Bardzo dobre pytanie. Zależy częściowo od tego, czy sumy kontrolne danych również wpływają na WAL (których IIRC nie mają, z wyjątkiem pełnych obrazów stron w WAL). Nie miałem czasu na zagłębianie się w sumy kontrolne danych, ponieważ pomagałem przy innych funkcjach. Pytanie o pgsql-general może być dobrym pomysłem. Jeśli czas i nowe dziecko na to pozwolą, przyjrzę się źródłom, ale nie wstrzymam oddechu.
Craig Ringer
3
@Craig gratulacje!
Jack mówi, że spróbuj topanswers.xyz
4
Rzeczy, których uczysz się na StackExchange ... „pomaganie przy innych funkcjach” to eufemizm „zmieniania pieluch”.
Colin 't Hart

Odpowiedzi:

1

Jeśli dane zostały uszkodzone na dysku, uszkodzenie nie powinno zostać zreplikowane, chyba że było już obecne w kopii zapasowej, z której utworzono replikę.

Oczywiście, jeśli zignorujesz awarie sumy kontrolnej, wówczas mistrz może zacząć popełniać błędy i ta nieprawidłowość zostanie powtórzona.

Jeśli korupcja występuje w pamięci, wszystkie zakłady są wyłączone.

jjanes
źródło
2
jest tutaj bardzo blisko znaku. Dokumentacja ignore_checksum_failureparametru zawiera ostrzeżenie, że „takie zachowanie może ... propagować ... uszkodzenie”. Bez wyraźnej wzmianki o replikacji (strumieniowej) wydaje się, że jest to sugerowane tutaj. Zwykle błąd sumy kontrolnej spowodowałby przerwanie transakcji, więc żadne dane nie byłyby replikowane. Zignorowanie tego błędu umożliwi zatwierdzenie transakcji i zapisanie (potencjalnie) uszkodzonych danych, które również zostaną zreplikowane.
Colin 't Hart