Seite 1 von 1

Paralleler Zugriff auf sqlite DB möglich?

Verfasst: Mittwoch 21. Januar 2009, 10:51
von ms4py
Hallo,
kann ich parallel mit mehreren Prozessen auf ein sqlite-Datenbank-File zugreifen (Schreiben und Lesen)?
Habe leider immer noch Python23 und kann es deshalb nicht testen.

Re: Paralleler Zugriff auf sqlite DB möglich?

Verfasst: Mittwoch 21. Januar 2009, 11:05
von Leonidas
ice2k3 hat geschrieben:Habe leider immer noch Python23 und kann es deshalb nicht testen.
PySQLite gibt es auch für Python 2.3. Aber die Antwort ist "nein", SQLite kommt mit parallelen writes generell nicht zurecht.

Verfasst: Mittwoch 21. Januar 2009, 11:29
von ms4py
Hab es jetzt mal selber getestet.
Funktioniert ja nur nicht, wenn der eine Prozess noch in einem COMMIT Block ist, solang kann man mit dem 2. Prozess halt nur Lesen und nicht schreiben.
Paralleles Öffnen und Lesen der Datei funktioniert ja.
Ich denk mal, dass das den Anforderungen genügt. Kann ja den Lock mit try abfangen und einfach die Abfrage noch einmal versuchen.

Verfasst: Mittwoch 21. Januar 2009, 23:26
von BlackJack
@Leonidas: Das stimmt so nicht. Problem ist nur das beim schreiben die ganze Datenbank gesperrt wird, das skaliert also sehr schlecht.

Verfasst: Donnerstag 22. Januar 2009, 00:16
von Leonidas
Und dass SQLite viele ``fsync``-Aufrufe macht (Firefox 3 Alphas/Betas hatten das Problem), meine Vermutung ist dass Lodgeit gerade deswegen vor dem Umstieg auf Postgres manchmal so Probleme gemacht hat.