SQLite beschleunigt Transaktionen durch Write-Ahead-Log

SQLite benutzte bislang ausschließlich ein "Rollback Journal" für die Verwaltung von Transaktionen. Dabei legte es zunächst eine Kopie der aktuellen Daten an und schrieb dann die neuen Werte in die Datenbank.

Ab Version 3.7.0 können Entwickler alternativ "Write-Ahead-Logs" (WAL) benutzen. Bei dieser Technik verändert die Datenbank sich zunächst nicht, alle Transaktionen werden in eine separate WAL-Datei geschrieben. Von dort überführt sie SQLite regelmäßig oder auf Anforderung der Anwendung in die Datenbank ("Checkpointing"). Dieses Verfahren soll in den meisten Fällen deutlich schneller sein als das Rollback Journal. Lediglich bei vorwiegend lesenden Anwendungen kann es nach Angaben der Entwickler durch WAL zu Performance-Einbußen von bis zu 2 Prozent kommen.

Die WAL-Technik gibt es in den SQLite-Versionen für Windows und Unix. Bei anderen Betriebssystemen, so warnen die Entwickler, hänge ihre Verfügbarkeit von Details des zugrunde liegenden virtuellen Dateisystems ab. In jedem Fall müssen die Prozesse und die Datenbank auf demselben Rechner laufen, Netzdateisysteme wie CIFS unterstützt WAL nicht.

SQLite kommt unter anderem in Adobes Lightroom, Apples Mac OS X, Firefox und Thunderbird sowie in Solaris 10 zum Einsatz.

Quelle: http://www.heise.de/newsticker/meldung/SQLite-beschleunigt-Transaktionen-durch-Write-Ahead-Log-1043388.html