Problème de concurrence avec SQLite en environnement multi-thread
Problème de concurrence avec SQLite en environnement multi-thread
Coucou, j'ai une app Python qui utilise SQLite avec 10 threads. J'ai souvent des 'database is locked'. Je croyais que la version 3.35+ gérait mieux la concurrence ?
Sauvegardez, bon sang
Re: Problème de concurrence avec SQLite en environnement multi-thread
SQLite reste limité en écritures concurrentes. As-tu essayé WAL mode ? (PRAGMA journal_mode=WAL). Ça améliore beaucoup dans nos tests.
Re: Problème de concurrence avec SQLite en environnement multi-thread
WAL mode + augmenter le timeout (PRAGMA busy_timeout=3000) peut aider. Mais au-delà de 5-6 threads actifs, passe sur PostgreSQL vraiment...
Re: Problème de concurrence avec SQLite en environnement multi-thread
Merci ! Le WAL mode a réduit les erreurs, mais j'ai encore des locks quand plusieurs threads UPDATE la même table. Je vais peut-être devoir mettre un verrou applicatif...
Sauvegardez, bon sang
Re: Problème de concurrence avec SQLite en environnement multi-thread
Oui, ou batch tes updates. Chez nous on accumule les changements en mémoire et on fait un gros UPDATE toutes les 100 opérations. Gain énorme !