Uploaded to CPAN are DBD::SQLite 1.05 and DBD::SQLite2 0.33
Changes for DBD::SQLite2:
- Set HAVE_USLEEP appropriately. This massively improves
concurrent access to your SQLite DB.
Changes for DBD::SQLite:
- Enabled HAVE_USLEEP where available which should massively
improve concurrent usage of DBD::SQLite
- Update to sqlite 3.0.6
What happened here was we had concurrency problems with our SQLite databases. I had no idea why. A colleague finally got around to writing a test for it to replicate the problem - this is truly the only way to fix a problem like this. Once the test was written it was fairly easy to figure out the problem (resource starvation due to sleeping too long after a failed lock) and fix it.
Anyone who has had problems running DBD::SQLite on a web server due to concurrency issues should try this version.