[DBD-SQLite] test DBD::SQLite 1.30_04 - write-ahead logging

Darren Duncan darren at darrenduncan.net
Wed Aug 25 20:31:19 GMT 2010


All,

I am pleased to announce that DBD::SQLite (Self Contained RDBMS in a Perl DBI
Driver) version 1.30_04 has been released on CPAN (by Adam Kennedy).

   http://search.cpan.org/~adamk/DBD-SQLite-1.30_04/

This developer release bundles the brand-new SQLite version 3.7.2, which (since 
3.7.0) adds support for write-ahead logging (WAL).  See 
http://sqlite.org/wal.html for the details of the WAL support that SQLite now has.

WAL is an alternative method to how SQLite implements atomic commit and rollback 
than to its rollback journal method.  It offers much improved concurrency and 
performance in many circumstances, such as because database readers and writers 
don't block each other.  There are also trade-offs.  By default, SQLite and 
DBD::SQLite will continue to use the older rollback journal method, and you can 
use the new WAL method with the SQL command:

   PRAGMA journal_mode=WAL;

There are also numerous other additions, changes, or fixes in either DBD::SQLite 
or SQLite itself since the last production DBD::SQLite release 1.29 of 2010 
January, which bundles SQLite 3.6.22.  For the change details since then, see 
http://sqlite.org/changes.html or 
http://search.cpan.org/src/ADAMK/DBD-SQLite-1.30_04/Changes as appropriate.

TESTING NEEDED!

Please bash the hell out of the latest DBD::SQLite and report any outstanding
bugs on RT.  Test your dependent or compatible projects with it, which includes
any DBMS-wrapping or object persistence modules, and applications.

This 1.30_04 release will probably be released as a production 1.31 within a 
week if no show-stopper problems are found.

Please note the compatibility caveats of using pre-3.7.x versions of SQLite on 
databases that had been used with WAL mode on.  In order to use an older SQLite 
on the database, the database must have last been used by a 3.7.x in journal 
mode.  See http://sqlite.org/wal.html for details.

Please note that, if you receive nondescript "disk I/O error" errors from your 
code after the update, see if the failing code involves a process fork followed 
by unlinking of the database, such as if it was temporary for testing.  The 
DBD::SQLite test suite had needed an update to act more correctly, which the 
update to 3.7.x from 3.6.x exposed; 3.6.x didn't complain about this.

If you want in to DBD::SQLite development, then join the following email/IRC
forums which MST created (the mailing list, I am administrating):

   http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite

   #dbd-sqlite on irc.perl.org

And the canonical version control is at:

   http://svn.ali.as/cpan/trunk/DBD-SQLite/

Patches welcome.  Ideas welcome.  Testing welcome.

If you feel that a bug you find is in SQLite itself rather than the Perl DBI
driver for it, the main users email forum for SQLite in general is at:

   http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

... where you can report it as an appropriate list post (the SQLite issue
tracking system is no longer updateable by the public; posting in the list can
cause an update there by a registered SQLite developer).

Please do not reply to me directly with your responses.  Instead send them to
the forums or file with RT as is appropriate.

Thank you. -- Darren Duncan




More information about the DBD-SQLite mailing list