I've used berkeley for hundreds of concurrent queries -- it is quite good in those situations, SQLlite is not -- its just not designed for those situations.
combining the two brings an easy interface that sqlite provide, and the concurrent performance that bdb has, is definitely providing value.
I do. I wrote a tool to help me understand what I could do on various storage tiers running as safely as possible. Here's one of my results from linode:
This is an awesome shootout! Be careful with BDB, its default tuning is geared more towards an embedded environment then a modern web-app. That's not to say it can't go fast!
I took a look at your BDB demo and saw that you weren't creating the DBs in an environment, which meant every operation was straight to disk, and also meant that you weren't running with write-ahead logs (which will give you durability). I didn't look too closely to see if the other databases had caching enabled or not (or what their defaults were).
On my macbook air, configuring with caching (and no logging) yielded this from your benchmark:
Air:kvtest jamie$ ./bdb-test
Running test ``test test'' PASS
Running test ``write test'' Ran 284669 operations in 5s (56933 ops/s)
PASS
Of course, page caching makes all the difference :-)
combining the two brings an easy interface that sqlite provide, and the concurrent performance that bdb has, is definitely providing value.