阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

MapDB:专为 Java 设计的高性能的数据库

  • 2014-07-21
  • 本文字数:976 字

    阅读完需:约 3 分钟

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,也可以关注作者的博客来了解关于 MapDB 的更多信息。

2014-07-21 05:5615053
用户头像

发布了 219 篇内容, 共 134.8 次阅读, 收获喜欢 190 次。

关注

评论

发布
暂无评论
发现更多内容

降本增效的背后,谈谈阿里云存储数据湖3.0

云布道师

数据湖 云存储 云栖大会

ITSM | 对话——从业务场景、中国市场策略角度解读Atlassian ITSM解决方案

龙智—DevSecOps解决方案

ITSM ITIL

高效!启科量子线路模拟器 QuSprout 与 Amazon HPC 集成,赋能量子计算

亚马逊云科技 (Amazon Web Services)

量子计算 Hero 专栏

车间工厂看板还搞不定,数据可视化包教包会

葡萄城技术团队

数据可视化 看板 智能工厂

FastJSON2他来了,性能显著提升,还能再战十年

共饮一杯无

Java Fastjson 11月月更

代码质量与安全 | 使用Incredibuild加速Klocwork静态代码分析

龙智—DevSecOps解决方案

代码静态分析 SAST工具 SAST 编译器 加速器 编程语言

《鸿蒙生态应用开发白皮书》正式发布,携手更多开发者迈入鸿蒙世界

最新动态

Java中的StringBuilder类

共饮一杯无

Java StringBuilder 11月月更

PGL图学习之项目实践(UniMP算法实现论文节点分类、新冠疫苗项目实战,助力疫情)[系列九]

汀丶人工智能

图神经网络 图学习 11月月更 论文节点分类任务 新冠疫苗任务

从零开始学习Java系列之Java运行机制与跨平台特性

千锋IT教育

《鸿蒙生态应用开发白皮书》正式发布,携手更多开发者迈入鸿蒙世界

最新动态

探讨Morest在RESTful API测试的行业实践

华为云开发者联盟

开发 API测试 华为云

MySQL数据库 group by 语句怎么优化?

Java全栈架构师

Java MySQL 数据库 程序员 后端

MatrixOne从入门到实践07——MO-Tester

MatrixOrigin

数据库 分布式 测试工具 MatrixOrigin MatrixOne

DNS中有哪些值得学习的优秀设计

小小怪下士

Java 程序员 DNS

2022中国区Cyber Monday限时优惠来袭,Linux基金会开源软件学园带来优惠

kk-OSC

k8s Linux基金会 CKA CKS

这可能是最全的SpringBoot3新版本变化了!

艾小仙

Java spring could spring-boot

即时通讯技术文集(第7期):长连接网关、P2P等 [共10篇]

JackJiang

网络编程 IM 即时通讯IM

观察者模式在spring中的应用

京东科技开发者

Java spring 编程 观察者模式

Baklib|知识库应用场景:制作员工培训手册

Baklib

团队管理 知识管理

公共大数据集群中如何配置 YARN 的公平调度器和容量调度器

明哥的IT随笔

hadoop YARN

Java中的拆箱与装箱

共饮一杯无

Java 11月月更 装箱与拆箱

异常的基本概念和Java中的体系

共饮一杯无

Java 异常 11月月更

无情!阿里技术专家手写《微服务架构笔记》,瞬间屠榜NO.1

程序知音

Java 微服务 java架构 后端技术

String、StringBuffer、StringBuilder 有什么区别

共饮一杯无

Java string 11月月更

深度 | 新兴软件研发范式崛起,云计算全面走向 Serverless 化

Serverless Devs

阿里云 Serverless

一次MTU问题导致的RDS访问故障

京东科技开发者

数据库 Linux MTU RDS vpn

千年荒漠变绿洲,看沙漠“卫士”携手昇腾AI植起绿色希望

华为云开发者联盟

人工智能 华为云 昇腾AI

软件测试自动化“领导者”SmartBear举办首场中国线上研讨会:洞悉全球自动化测试走向,探讨降本增效之策

龙智—DevSecOps解决方案

自动化测试 API测试 UI测试 软件测试自动化

技术指南 | 如何集成Perforce版本控制系统Helix Core (P4V) 与敏捷规划工具Hansoft

龙智—DevSecOps解决方案

敏捷 版本管理

“鸿蒙开发套件”焕新升级 端到端赋能助力开发运维事半功倍

最新动态

MapDB:专为Java设计的高性能的数据库_DevOps & 平台工程_小盖_InfoQ精选文章