SQLite WAL-Modus-Checksum-Problem: Stiller Datenverlust
Dieser Beitrag untersucht einen Fehler im Checksum-Mechanismus von SQLite im Write-Ahead-Logging (WAL)-Modus. Wenn eine Checksummen-Diskrepanz in einem WAL-Frame auftritt, verwirft SQLite den fehlerhaften Frame und alle nachfolgenden Frames lautlos, selbst wenn diese nicht beschädigt sind. Dieses Design, obwohl beabsichtigt, führt zu potenziellen Datenverlusten. Der Autor analysiert die zugrundeliegenden Gründe und schlägt vor, dass SQLite bei der Erkennung von Beschädigungen einen Fehler auslösen sollte, anstatt Daten stillschweigend zu verwerfen, wodurch die Datenintegrität verbessert wird. Die Diskussion behandelt auch den Kontext der Verwendung von SQLite in eingebetteten Systemen und Mobilgeräten, wo Beschädigungen häufiger vorkommen.