MapDB

Additional

Language
Java
Version
mapdb-renamed-2.0-beta12 (Nov 25, 2015)
Created
Aug 17, 2012
Updated
Jan 10, 2024
Owner
Jan Kotek (jankotek)
Contributors
Vladislav Bauer (vbauer)
Halo Master (linkerlin)
Rene Treffer (rtreffer)
The Gitter Badger (gitter-badger)
Dave Brosius (mebigfatguy)
Tom Quellenberg (tquellenberg)
Laurent Pellegrino (lpellegr)
Mirko Friedenhagen (mfriedenhagen)
Guy Korland (gkorland)
Andrejs Jermakovics (ajermakovics)
Rémi Alvergnat (Toilal)
Jan Kotek (jankotek)
Ian Barfield (tea-dragon)
Pedro Alves (pdroalves)
Hari Shreedharan (harishreedharan)
Nándor István Krácser (bonifaido)
Rodion Gorkovenko (RodionGork)
Andreas König (koa)
Show all (39)39
Activity
Badge
Generate
Download
Source code

Advertisement

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.

Hello world

Maven snippet, VERSION is

<dependency>
    <groupId>org.mapdb</groupId>
    <artifactId>mapdb</artifactId>
    <version>VERSION</version>
</dependency>

Hello world:

//import org.mapdb.*
DB db = DBMaker.memoryDB().make();
ConcurrentMap map = db.hashMap("map").make();
map.put("something", "here");

You can continue with quick start or refer to the documentation.

Support

More details.

Development

MapDB is written in Kotlin, you will need IntelliJ Idea.

You can use Gradle to build MapDB.

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: -DtestArgLine="-Xmx3G"

By default unit tests are executed in 3 threads. Thread count is controlled by -DtestThreadCount=3 property

On machine with limited memory you can change fork mode so unit test consume less RAM, but run longer: -DtestReuseForks=false