took a quick look at mapdb today (which is jdbm3++)
looks promising, but not the holy grail
CONS: appears to require a max size on keys. kind of a pain to setup. examples and benchmarks appear very simple. believe it's using mmap (which is fundamentally limited). appears to be a single thread for writes and a thread per read ???
PROS: appache2 license, java interface
i didn't investigate the internals much, in particular the mvcc