Which embedded DB written in Java for a simple key/value store? [closed]
There seem to be a couple of ports of Google's LevelDB into Java:
Then there is a whole list of embedded Java databases here:
For your use case I would recommend MapDB (http://www.mapdb.org)
It matches your requirements:
- written in Java
- embeddable - single jar with no dependencies
- not SQL - gives you maps that are persisted to disk
- open source (Apache 2 licence)
- easy to backup (few files)
and has other nice features like transactions, concurrency and performance.
Chronicle-Map
is a new nice player on this field.
- It is off-heap residing (with ability for being persisted to disk by means of memory-mapped files)
Map
implementation - Super-fast -- sustains millions of queries/updates per second, i. e. each query has sub-microsecond latency on average
- Supports concurrent updates (assumed to be a drop-in replacement of
ConcurrentHashMap
) - Special support of property maps you mentioned, if the set of properties is fixed within the collection -- allows to update specific properties of the value without any serialization/deserialization of the whole value (20 fields). This feature is called data value generation in Chronicle/Lang project.
- And many more...