I've been trying to find a good embedded db for caching data in a Kotlin JVM application. I didn't find a great option, but two of the best candidates were
• LMDB (using
https://github.com/lmdbjava/lmdbjava)
• RocksDB (using
https://github.com/facebook/rocksdb/wiki/rocksjava-basics)
I decided to try RocksDB first, and my attempt is still WIP. It's quite tricky, because there are lots of options, but I like that it supports (or at least claims to support, I've yet to use it in anger) key-based locking (which can either be pessimistic or optimistic), which I think will be useful for highly concurrent access.