Bagaimana cara checksum data berinteraksi dengan replikasi streaming?


11

Checksum data adalah fitur baru yang diperkenalkan di 9.3, dan:

ada parameter GUC baru "ign_checksum_failure" yang akan memaksa PostgreSQL untuk melanjutkan memproses transaksi bahkan jika korupsi terdeteksi

Jika terjadi kegagalan checksum pada master replikasi, apakah data yang korup akan mereplikasi menjadi budak atau replikasi akan berhenti. Apakah itu tergantung pada pengaturan ignore_checksum_failure?

README ini memiliki beberapa informasi terkait yang bermanfaat tetapi tidak secara langsung menjawab pertanyaan.


6
Pertanyaan yang sangat bagus Sebagian tergantung pada apakah checksum data mempengaruhi WAL juga (yang IIRC mereka tidak, kecuali untuk gambar halaman penuh di WAL). Saya belum punya waktu untuk menggali data checksum karena saya telah membantu dengan fitur lain. Bertanya pada pgsql-jenderal mungkin ide yang bagus. Jika waktu dan bayi baru mengizinkan saya akan melihat sumbernya, tetapi saya tidak akan menahan nafas.
Craig Ringer

3

4
Hal-hal yang Anda pelajari di StackExchange ... "membantu fitur-fitur lain" adalah eufemisme untuk "mengganti popok".
Colin 't Hart

Jawaban:


1

Jika data rusak saat di disk, korupsi tidak boleh direplikasi kecuali jika sudah ada di cadangan dari mana replika dibuat.

Tentu saja jika Anda mengabaikan kegagalan checksum maka master dapat mulai melakukan hal-hal yang salah, dan kesalahan itu akan ditiru.

Jika korupsi terjadi dalam memori maka semua taruhan dimatikan.


2
cukup dekat dengan tanda di sini. Dokumentasi pada ignore_checksum_failureparameter termasuk peringatan bahwa "perilaku ini dapat ... menyebarkan ... korupsi". Tanpa menyebutkan replikasi (streaming) secara eksplisit, tampaknya hal ini tersirat di sini. Biasanya kesalahan checksum akan menyebabkan transaksi dibatalkan, jadi tidak ada data yang akan direplikasi. Mengabaikan kesalahan ini akan memungkinkan Anda untuk melakukan transaksi dan menulis (berpotensi) data yang rusak, yang juga akan direplikasi.
Colin 't Hart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.