In unserer Anwendung verwenden wir Hibernate und PostgreSQL zum Speichern von Daten. In einer unserer Datenbanktabellen befindet sich eine Diskriminatorspalte, in der beispielsweise "TIPPSPIEL" steht. Es ist eine feste Zeichenfolge und kann von keinem Benutzer manipuliert werden.
Plötzlich hatten wir einen Eintrag in dieser riesigen Tabelle, in der wir "TIPPQPIEL" anstelle von "TIPPSPIEL" hatten. Wir haben keine Ahnung, wie das passieren kann.
Ist es auf irgendeine Weise möglich, dass unsere Festplatte ein Bit wechselt, sodass unser Buchstabe "S" nicht mehr als "1010001" codiert wird, sondern plötzlich ein "Q" auf der Festplatte wird, wobei ein Bit wie folgt gewechselt wird: 1010011?
Ich bin kein Experte für Festplattenphysik, aber ich schätze, ein Betriebssystem oder eine Festplatte hat Prüfsummen und anderes Zeug, um sicherzustellen, dass dies nicht passieren kann.
Ist es möglich, dass nur ein Bit wechselt, sodass meine Datei den Buchstaben "Q" anstelle eines "S" anzeigt?
UPDATE: Wir haben weiter analysiert. Unsere Slave-Datenbank bezieht ihre WAL-Records vom Master (PostgreSQL-Funktion). Was auch immer: Unser Slave-Server sollte synchron sein. Aber der Sklave war in Bezug auf diese bestimmte Reihe nicht synchron. Wir konnten sehen, dass es vor ein paar Tagen ohne Interaktion eines Benutzers zu diesem bestimmten Eintrag passiert ist. Es MUSS also ein bisschen herumflippen. unheimlich!
quelle
Antworten:
Es kommt so selten vor, dass wir auf dieser Website eine wirklich interessante Frage sehen. Vielen Dank an erster Stelle.
Ich denke, was Sie dort sehen, ist in der Tat ein Einzelbitfehler. Es ist erstaunlich, dass Sie es ehrlich sehen können, aber Sie gehen zu Recht davon aus, dass das zweitniedrigstwertige Bit umgeschaltet wurde (vorausgesetzt, Sie verwenden ASCII sowieso).
Bei Prüfsummen usw., die auf die Festplatte geschrieben wurden, wurde sie wahrscheinlich als einwandfrei überprüft. Ich bin mir ziemlich sicher, dass sich dieses Problem später durch einen einfachen Fehler durch magnetische Leckage entwickelt hat. Aber Sie haben Recht, es werden Codierungsprüfungen durchgeführt. Dies ist vom Hersteller abhängig, aber es gibt wahrscheinlich irgendwo einen Fehler, der besagt, dass dies etwas seltsam aussieht. Aber welche Option hat Ihre E / A-Kette? leugnen Sie den ganzen Block? Ich gehe davon aus, dass dies eine einzelne Festplatte ohne RAID ist, da RAID-Festplatten in der Regel mehr Optionen zur Verfügung haben, wenn sie Fehler erkennen.
Es ist eine seltsame Sache, obwohl solche Dinge wahrscheinlich mehrmals in der Sekunde auf der ganzen Welt passiert sind.
quelle