I\'m looking for a dbm-like library that I can use in place of Berkeley DB, which I\'m currently using. My main reason for switching is the licensing fees for BDB are pretty hig
Firebird is your best friend.
SQLite is public domain, meaning you can use it for any purpose whatsoever, and is widely used and supported.
You can get much improved performance out of any dbm (even qdbm) and improved parallelism with a simple level of indirection: Simply take your keys and hash them, and use data_dir/H(key)/
as the database to store those keys. Limit the hash output to a small value (say) 255 for best results.
This approach has a number of benefits, easily summarized:
The hash probably doesn't even need to be cryptographically secure; just mostly uniform. DJB's cdb hash works well in most cases.