En nuestra aplicación utilizamos Hibernate y PostgreSQL para almacenar datos. En una de nuestras tablas de la base de datos tenemos una columna discriminadora que dice, por ejemplo, "TIPPSPIEL". Es una cadena fija y no puede ser manipulada por ningún usuario.
De repente, tuvimos una entrada en esta gran tabla donde teníamos "TIPPQPIEL" en lugar de "TIPPSPIEL". No tenemos idea de cómo puede suceder esto.
¿Es posible de alguna manera que nuestro disco duro esté cambiando un bit, por lo que nuestra letra "S" ya no está codificada como "1010001" pero de repente se convierte en una "Q" en el disco duro con un bit cambiado de esta manera: 1010011?
No soy un experto en física de discos duros, pero supongo que un sistema operativo o un disco tiene sumas de comprobación y otras cosas para garantizar que esto no suceda.
¿Es posible que solo un bit cambie para que mi archivo me muestre una letra "Q" en lugar de una "S"?
ACTUALIZACIÓN: Hicimos más análisis. Nuestra base de datos esclava obtiene sus registros WAL del maestro (función PostgreSQL). Lo que sea: nuestro servidor esclavo debe estar sincronizado. Pero el esclavo no estaba sincronizado con respecto a esta fila en particular. Pudimos ver que sucedió hace unos días sin ninguna interacción de un usuario en esta entrada en particular. Por lo tanto, DEBE ser un poco volteando. ¡de miedo!
fuente
Respuestas:
Es tan raro que vemos una pregunta realmente interesante en este sitio, así que gracias en primer lugar.
Creo que lo que está viendo es un error de un solo bit, es sorprendente que pueda detectarlo para ser honesto, pero tiene razón al suponer que se ha cambiado el segundo bit menos significativo (suponiendo que esté usando ASCII de todas formas).
En cuanto a las sumas de verificación, etc., cuando se escribió en el disco, es probable que se haya verificado como correcto; estoy bastante seguro de que este problema se desarrolló posteriormente a través de un simple error de fuga magnética. Pero tiene razón, se realizan comprobaciones de codificación, varía según el fabricante, pero probablemente haya un error en alguna parte que dice 'esto parece un poco extraño', pero ¿qué opción tiene disponible su cadena de E / S? ¿Te niego todo el bloque? Asumiré que este es un disco único no RAID ya que los discos RAID tienden a tener más opciones disponibles cuando detectan errores.
Es extraño, aunque este tipo de cosas probablemente sucedieron varias veces por segundo en todo el mundo.
fuente