立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

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

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

关注

评论

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

SDK轻量化,降低日均耗电量和日均流量

MobTech袤博科技

2023-06-01:讲一讲Redis常见数据结构以及使用场景。

福大大架构师每日一题

redis 福大大

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

BlockChain先知

C语言编程-结构体

梦笔生花

数组 函数参数 6 月 优质更文活动

2023 重新开始

HoneyMoose

瑞云科技CTO赵志杰出席广州广告数字创意峰会并发表演讲

3DCAT实时渲染

元宇宙 实时云渲染 云3D渲染

WICC · 出海嘉年华倒计时!精彩不容错过,「指南」一手掌握

融云 RongCloud

社交 融云 泛娱乐 出海 wicc

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

大瞿科技

鲲鹏DevKit助力海通证券高效开发互联网行情系统,性能提升26%

说山水

小小机械臂 带动产业自动化

说山水

自媒体行业红利衰退,大部分自媒体作者将生存艰难

石头IT视角

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

股市老人

Django笔记四十之运行Django环境的python脚本

Hunter熊

Python django 脚本

wireshark分析tcp传输之文件上传速率问题

蓝胖子的编程梦

TCP 网络 Wireshark tcpdump 抓包

项目汇报的正确打开方式

老张

汇报 向上管理

嘉为蓝鲸荣登广东软件风云榜,获评新技术应用最受欢迎产品TOP10

嘉为蓝鲸

软件 新技术 应用程序

AI实战营第二期_OpenMMLab概述

IT蜗壳-Tango

OpenMMLab

OS 生成文件目录树

Andy

得物App万米高空WiFi拦截记

得物技术

App wifi 得物 拦截

鲲鹏DevKit助力通付盾Web应用防火墙产品开发,性能提升45%+

说山水

在金融数据里挖呀挖,GaussDB开出了花

脑极体

数据库

模块二:微信朋友圈高性能复杂度

家有两宝

架构实战营 微信朋友圈高性能复杂度

Qcon 广州主题演讲:融云实时社区的海量消息分发实践

融云 RongCloud

通信 IM 社交 融云 Discord

又是供应链安全:GUAC项目0.1版释出

sender_is_sender

网络安全 开源软件 供应链安全 GUAC

Authing 结合 APISIX 实现统一可配置 API 权限网关(快速启动版)

Authing

API APISIX APISIX 网关 API 接口

Why Docker? Why not?

K

Docker 镜像 PaaS #云原生

数字化转型应该如何去做?(技术篇)

数字随行

数字化转型

启用Windows防火墙后,FTP传输非常慢

镭速

1 行代码开启「密钥检测」,给敏感数据加上防护锁

极狐GitLab

DevOps 安全 DevSecOps 安全左移 密钥检测

Java 致命错误: 在类路径或引导类路径中找不到程序包 java.lang

Andy

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