<img src=”https://raw.githubusercontent.com/jankotek/mapdb-site/gh-pages/images/art/rocket-small.png” width=90 height=90 align=”left”/>
MapDB: database engine
MapDB combines embedded database engine and Java collections. It is free under Apache 2 license. MapDB is flexible and can be used in many roles:
- Drop-in replacement for Maps, Lists, Queues and other collections.
- Off-heap collections not affected by Garbage Collector
- Multilevel cache with expiration and disk overflow.
- RDBMs replacement with transactions, MVCC, incremental backups etc…
- Local data processing and filtering. MapDB has utilities to process huge quantities of data in reasonable time.
<dependency> <groupId>org.mapdb</groupId> <artifactId>mapdb</artifactId> <version>VERSION</version> </dependency>
//import org.mapdb.* DB db = DBMaker.memoryDB().make(); ConcurrentMap map = db.hashMap("map").make(); map.put("something", "here");
MapDB is written in Kotlin. You will need IntelliJ Idea 15 and newer to edit it.
You can use Maven to build MapDB by issuing command
MapDB is extensively unit-tested.
By default, only tiny fraction of all tests are executed, so build finishes under 10 minutes.
Full test suite has over million test cases and runs for several hours/days.
To run full test suite, set
-Dmdbtest=1 VM option.
Longer unit tests might require more memory. Use this to increase heap memory assigned to unit tests:
By default unit tests are executed in 3 threads. Thread count is controlled by
On machine with limited memory you can change fork mode so unit test consume less RAM, but run longer: