¿Cómo interactúan las sumas de verificación de datos con la replicación de transmisión?

11

Las sumas de verificación de datos son una nueva característica introducida en 9.3 y:

hay un nuevo parámetro GUC "ignore_checksum_failure" que obligará a PostgreSQL a continuar procesando una transacción incluso si se detecta corrupción

En el caso de una falla de suma de verificación en un maestro de replicación, los datos corruptos se replicarán en esclavos o la replicación se detendrá. ¿Depende de la configuración de ignore_checksum_failure?

Este archivo README tiene información relacionada útil pero no responde directamente a la pregunta.

Jack dice que intente topanswers.xyz
fuente
66
Muy buena pregunta Depende en parte de si las sumas de verificación de datos también afectan a WAL (qué IIRC no lo hacen, excepto las imágenes de página completa en WAL). No he tenido tiempo de investigar las sumas de verificación de datos, ya que he estado ayudando con otras funciones. Preguntar en pgsql-general puede ser una buena idea. Si el tiempo y el nuevo bebé lo permiten, echaré un vistazo a las fuentes, pero no aguanto la respiración.
Craig Ringer
3
@Craig felicidades!
Jack dice que intente topanswers.xyz
44
Lo que aprende en StackExchange ... "ayudar con otras funciones" es un eufemismo para "cambiar pañales".
Colin 't Hart

Respuestas:

1

Si los datos se corrompieron mientras estaba en el disco, la corrupción no debería replicarse a menos que ya estuviera presente en la copia de seguridad desde la que se creó la réplica.

Por supuesto, si ignora las fallas de la suma de verificación, el maestro puede comenzar a equivocarse y esa incorrección se replicará.

Si la corrupción está ocurriendo en la memoria, todas las apuestas están desactivadas.

jjanes
fuente
2
está bastante cerca de la marca aquí. La documentación sobre el ignore_checksum_failureparámetro incluye la advertencia de que "este comportamiento puede ... propagar ... la corrupción". Sin mencionar explícitamente la replicación (transmisión), parecería que esto está implícito aquí. Normalmente, un error de suma de comprobación provocaría la cancelación de la transacción, por lo que no se replicarían datos. Ignorar este error le permitiría confirmar la transacción y escribir datos (potencialmente) corruptos, que también se replicarían.
Colin 't Hart