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.
Paralleler Zugriff auf sqlite DB möglich?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
PySQLite gibt es auch für Python 2.3. Aber die Antwort ist "nein", SQLite kommt mit parallelen writes generell nicht zurecht.ice2k3 hat geschrieben:Habe leider immer noch Python23 und kann es deshalb nicht testen.
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.
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.
@Leonidas: Das stimmt so nicht. Problem ist nur das beim schreiben die ganze Datenbank gesperrt wird, das skaliert also sehr schlecht.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.