MapDB:专为Java设计的高性能的数据库
MapDB是一个快速、易用的嵌入式Java数据库引擎,它提供了基于磁盘或者堆外(off-heap允许Java直接操作内存空间,
类似于C的malloc和free)存储的并发的Maps、Sets、Queues。MapDB的前身是JDBM,已经有15年的历史。MapDB支持ACID事务、MVCC隔离,它的jar包只有200KB,且无其它依赖,非常轻量。MapDB目前的版本是1.0.5,相对来说功能已经稳定,并有全职的开发者支持开发。
MapDB全部使用Java编写,支持100GB以上的数据存储,且性能可以与很多由C语言开发的数据库(谷歌的Leveldb、甲骨文的Berkeley DB)相媲美。它的主要特性如下:
- 并发。MapDB 包含记录级别的锁和先进的并发控制引擎,它的性能可以在多核之间线性扩展,支持并发写。
- 快速。MapDB的性能可以与原生数据库相媲美,它经过多次的优化以及重写。
- ACID事务。支持ACID事务并实现了不同形式的MVCC,MapDB使用write-ahead-log或者append-only的方式来存储操作日志。
- 灵活。MapDB可以运行在内存缓存中,也可以支持TB级别的的数据库。它支持各种配置以满足不同的需求。
- Hackable。很多特性(实例缓存cache、异步写、压缩) 都是一组类, 易于加入新功能和组件。
- SQL Like。MapDB 有非常快的SQL引擎,包含很多从关系型数据库移植过来的特性,比如辅助索引/集合、自增序列ID、 连接、触发器、组合键。
- 低磁盘使用率。MapDB的能缩小磁盘的使用量,并且压缩以及序列化过程都非常快速。
MapDB采用模块化的架构设计,非常容易扩展,每一个模块都可以被关掉,并且每个模块都可以有不同的设计,比如MapDB中有5种不同的缓存以及3种不同的存储模式。
CodeFutures的CEO Cory解释了MapDB所要解决的问题,“MapDB为Java程序员提供了一种自然的方式来快速存储大对象,它可以精确匹配应用的需求。大部分应用都遇到过内存溢出或者很多的对象被装载到JVM而引起的过度垃圾回收的问题,很多时候这些问题是由于应用中有很多大的集合对象造成的。现在你可以使用MapDB来处理这些大的集合,且连API都不需要改。另外,MapDB可以轻松的实现排序、遍历、事务。”
另外,结合SSD硬盘,MapDB可以用于某些单节点的大数据场景。当数据集没有大到使用Hadoop处理时,可以考虑使用使用MapDB来编写基于内存的处理程序。
官网地址官网
MapDB:专为Java设计的高性能的数据库的更多相关文章
- Java Web 前端高性能优化(二)
一.上文回顾 上回我们主要从图片的合并.压缩等方面介绍前端性能优化问题(详见Java Web 前端高性能优化(一)) 本次我们主要从图像BASE64 编码.GZIP压缩.懒加载与预加载以及 OneAP ...
- WeUI首页、文档和下载 - 专为微信设计的 UI 库 - 开源中国社区
Download Bitnami Review Board Stack click here WeUI首页.文档和下载 - 专为微信设计的 UI 库 - 开源中国社区
- MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具
MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具.它是著名的数据库设计工具DBDesigner4的继任者.你可以用MySQL Workbench设计和创建新的数据库 ...
- Swing 是一个为Java设计的GUI工具包
Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...
- 使用Java设计验证码生成程序
我们来设计一个简单的验证码生成程序:验证码一个由4位的数字.字母随机组合而成图像,为了避免被光学字元识别(OCR,Optical Character Recognition)之类的程序识别出图片中的数 ...
- 去掉google play专为手机设计标识
google play上的应用默认都会有个“专为手机设计”的标识 有时应用明明已经针对平板作了优化,但为什么这个标识还在呢,如何去掉这个标识呢,其实只需要两个步骤就好了: 1. 标记为支持高分辨率 & ...
- 哈希表hashTable的Java设计
1:哈希表的概念 2:设计原理 3:哈希表的Java设计
- Android高性能ORM数据库DBFlow入门
DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点.同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后.基于注解,使用 ...
- java程序设计课期中考试——数据库的增删改查和简单的js界面
首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...
随机推荐
- MSSQL2005 导出excel文件
Title:MSSQL2005 导出excel文件 --2011-01-16 16:01 EXEC master..xp_cmdshell 'bcp "select * from 数据库名 ...
- uva 10007 Count the Trees
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- Cracking the coding interview--Q2.1
原文: Write code to remove duplicates from an unsorted linked list.FOLLOW UPHow would you solve this p ...
- WIN7下关闭驱动数字签名检查的方法
内容是转的,最后一步貌似没什么用处,水印是去不掉的,不过也无所谓,关键是驱动能用了,要不完全瞎了 实测win7 32位旗舰版可用 ================================= ...
- Qt编程之Qt样例表(QSS)
For a long time, Qt has allowed you to decorate your GUIs with CSS’ish style sheets. Inspired by the ...
- 基于SQL_ID查看对象大小
SQL> set echo off set echo off set verify off set serveroutput on set feedback off set lines 200 ...
- BZOJ1119: [POI2009]SLO
1119: [POI2009]SLO Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 379 Solved: 181[Submit][Status] ...
- c# 实现文件拖入和拖出(拖拽)
摘自:http://www.cnblogs.com/eaglet/archive/2009/01/06/1370149.html C# WinForm下一步一步实现文件的拖入和拖出 作者:Eaglet ...
- 判断UserAgent是否为手机
, ))) { return true; } return false; }
- HAVING 子句 (SQL Server Compact)
MSDN官方文献 原文地址:http://technet.microsoft.com/zh-cn/library/ms173260.aspx