Paralleler Zugriff auf sqlite DB möglich?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Paralleler Zugriff auf sqlite DB möglich?

Beitragvon ms4py » Mittwoch 21. Januar 2009, 10:51

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Paralleler Zugriff auf sqlite DB möglich?

Beitragvon Leonidas » Mittwoch 21. Januar 2009, 11:05

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.
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Mittwoch 21. Januar 2009, 11:29

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.
BlackJack

Beitragvon BlackJack » Mittwoch 21. Januar 2009, 23:26

@Leonidas: Das stimmt so nicht. Problem ist nur das beim schreiben die ganze Datenbank gesperrt wird, das skaliert also sehr schlecht.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 22. Januar 2009, 00:16

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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder