There's a time for photography and a time for drinking, and I'm glad to say I didn't take the camera to the Great British Beer Festival yesterday. Beardy's personal award goes to Timothy Taylor Best, a pint I'd never had before, and which narrowly pipped Archer's Golden into second place, ahead too of my long time favourites like Timothy Taylor Landlord and Hopback Summer Lightning (the show's runner up golden ale). I seem to go every year now but this year it was especially welcome as the fridge packed up two days before I left for Barcelona and there's no food or cool drink in the house. That's my excuse anyway.

But onto what I intended to write about, Lightroom. I know I'm not alone in looking behind the scenes and noticing that it's based on a SQLite3 database. Appropriate Uses For SQLite includes Situations Where Another RDBMS May Work Better:


Very large datasets
…If you need to store and modify more than a few dozen GB of data, you should consider using a different database engine.

High Concurrency
SQLite uses reader/writer locks on the entire database file. That means if any process is reading from any part of the database, all other processes are prevented from writing any other part of the database. Similarly, if any one process is writing to the database, all other processes are prevented from reading any other part of the database. For many situations, this is not a problem. Each application does its database work quickly and moves on, and no lock lasts for more than a few dozen milliseconds. But there are some applications that require more concurrency, and those applications may need to seek a different solution.

OK, I don't know SQLite, nor Adobe's plans, nor Lightroom's system demands. But it does concern me. Lightroom is going to be used in volume image editing environments and where do you draw the line between corporates and small studios which may be unable to handle server-based databases like SQL Server and Oracle? While accepting SQLite3's virtues, I'd certainly like to see Adobe provide an option (at some future point) for external databases such as SQL Server.