MapDB是一個快速、易用的嵌入式Java數據庫引擎,它提供了基於磁盤或者堆外(off-heap容許Java直接操做內存空間, 相似於C的malloc和free)存儲的併發的Maps、Sets、Queues。MapDB的前身是JDBM,已經有15年的歷史。MapDB支持ACID事務、MVCC隔離,它的jar包只有200KB,且無其它依賴,很是輕量。MapDB目前的版本是1.0.5,相對來講功能已經穩定,並有全職的開發者支持開發。html
MapDB所有使用Java編寫,支持100GB以上的數據存儲,且性能能夠與不少由C語言開發的數據庫(谷歌的Leveldb、甲骨文的Berkeley DB)相媲美。它的主要特性以下:java
MapDB採用模塊化的架構設計,很是容易擴展,每個模塊均可以被關掉,而且每一個模塊均可以有不一樣的設計,好比MapDB中有5種不一樣的緩存以及3種不一樣的存儲模式。node
CodeFutures的CEO Cory解釋了MapDB所要解決的問題,「MapDB爲Java程序員提供了一種天然的方式來快速存儲大對象,它能夠精確匹配應用的需求。大部分應用都遇到過內存溢出或者不少的對象被裝載到JVM而引發的過分垃圾回收的問題,不少時候這些問題是因爲應用中有不少大的集合對象形成的。如今你可使用MapDB來處理這些大的集合,且連API都不須要改。另外,MapDB能夠輕鬆的實現排序、遍歷、事務。」程序員
另外,結合SSD硬盤,MapDB能夠用於某些單節點的大數據場景。當數據集沒有大到使用Hadoop處理時,能夠考慮使用使用MapDB來編寫基於內存的處理程序。數據庫
官網地址官網緩存