【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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:5615082
用户头像

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

关注

评论

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

五分钟搞懂MySQL主从复制原理,附带学习经验

JVM调优资料

Java 程序员 后端

jackson1处理特殊字符有什么问题?

BUG侦探

json Java 开发 jackson特殊字符

高防云服务器与云服务器的区别以及如何去更好的选择?

九河云安全

IE 退出后,苹果 Safari 成为了开发者最讨厌的浏览器?

百度开发者中心

产品 最佳实践 开发者 方法论 浏览器

为什么大公司一定要使用微服务?神操作!

JVM调优资料

Java 程序员 后端

京东面试真题解析,帮你解决95%以上的问题!

JVM调优资料

Java 程序员 后端

中国首位 K8s ingress-nginx reviewer 同时提名成为 Apache APISIX committer

API7.ai 技术团队

开源 Kubernetes 采访 APISIX

书单 | 7月畅销新书情报,看谁是最大黑马

博文视点Broadview

开发者进阶宝典,HarmonyOS 职业认证全奉上

科技汇

MySQL不能没有字符串函数,就像西方不能失去耶路撒冷

北游学Java

Java MySQL 数据库

DBA:这有一份对接NBU备份故障排除指南,请查收!

华为云开发者联盟

故障 DWS 备份 NBU NetBackup

勒索软件、网络钓鱼、零信任和网络安全的新常态

九河云安全

课余时间学点python(一)Python基础之了解,下载,使用

ベ布小禅

8月日更

Java线程安全-JVM角度解析

程序员阿杜

Java JVM 多线程 并发 8月日更

CIS Kubernetes 基线测试

greatersecurity

基于ECS搭建FTP服务

若尘

阿里云 ftp服务 8月日更

阿里云 Centos7安装ssh+nginx+mysql 傻瓜式教程

九河云安全

香港云服务器的运行原理以及是微小创业公司的最具性价比的选择

九河云安全

SpringBoot使用Junit5

Rubble

springboot JUnit 8月日更

肝到头秃!阿里爆款的顶配版Spring Security笔记

Java spring 程序员 架构 计算机

字节三面+微信四面+PayPal四面,大厂面经分享

Java 程序员 架构 面试 计算机

Linux-Vim 编辑器和恢复 ext4 下误删除文件-Xmanager 工具

学神来啦

vim Linux 学习 运维

五年Java开发者小米、阿里面经,附相关架构及资料

JVM调优资料

Java 程序员 后端

刘擎:如何在迷失中找到自我?

石云升

哲学 自我 8月日更

五面阿里拿下飞猪事业部offer,帮你突破瓶颈

JVM调优资料

Java 程序员 后端

学会这十招,轻松搜索github优质项目

Java架构师迁哥

模块九毕设

c

架构实战营

Nginx 内存池似懂非懂?一文带你看清高性能服务器内存池

Linux服务器开发

nginx Linux服务器开发 Linux后台开发 高性能服务器 内存池

通过EasyRecovery如何恢复被永久删除的音频?

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

多数元素

Memorys

Java 面试 算法

Apache ShardingSphere:由开源驱动的分布式数据库中间件生态

SphereEx

数据库 开源

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