写点什么

使用 Space4J 进行 Java 的内存持久化

  • 2008-10-03
  • 本文字数:882 字

    阅读完需:约 3 分钟

Space4J 是一个简单的数据库系统,它使你可以在内存中与 Java 集合协同工作。由于内存对数据的随机访问速度要比磁盘快几个数量级,所以 Space4J 为性能关键的“实时”Web 应用和系统提供了更好的可伸缩性。

通过使用 Space4J,如果想从数据库表中取出一个 User,开发者就无需执行 SQL SELECT 语句了,而只需访问一个 users map(java.util.Map),然后调用 users.get(id)。因为所有的数据都保存在 JVM 所管理的内存中,所以就无需额外的数据库应用、socket 连接、JDBC 驱动、SQL 语句或者任何 ORM 工具等。数据就在那儿,在对象中,在 Java maps 中。如果你想修改数据,那么你需要创建一个 Command 对象,然后将其序列化并保存到磁盘上的一个日志文件中。当重启时,上次的 commands 就会从日志文件中被读取进来并被再次使用,然后生成与系统崩溃前一样的数据集。

应用会不时地将所有数据的快照存储到磁盘上以防止日志文件变得过大。Space4J 将所有数据都保存在 Space 对象中。当进行快照时,整个 Space 对象会被序列化并存储到磁盘上。因此当重启时,只有上次快照后的 commands 而不是全部需要重新应用。快照的大小取决于应用。除非使用了 Space4J 集群,否则系统必须进入只读模式才能将快照保存到磁盘上。这方面的一个例子就是处于负载平衡下的 Web 应用,这时每个 Web 服务器都需要有一个 Space4J 节点。

与 Space4J 一起发布的还有一个完善的索引框架,该框架支持 4 种不同的索引类型从而方便以多种方式来搜索数据。它也可用在通常的数据库中以进行离线处理、数据仓库、报表等等。

Space4J 使用了 Java 1.6 的并发数据结构来处理对数据的并发读 / 写访问,因此写只会阻塞写、而读则不会阻塞其他操作,也不会被其他操作阻塞。这意味着一次只能进行一个修改操作,但读操作就可以并发执行而不会抛出 ConcurrentModification 异常!

你可以下载最新版(0.9.1)或者查看源代码仓库

如果你想进一步了解关于将数据访问从磁盘转换到内存中,以得到更好的性能及其他数据访问的话题,请阅读InfoQ 上Steven Robbins 所写的文章——“ RAM 是新的硬盘”。

查看英文原文: Java In-Memory Persistence with Space4J

2008-10-03 23:131037
用户头像

发布了 88 篇内容, 共 269.1 次阅读, 收获喜欢 8 次。

关注

评论

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

基于微信小程序的CMS内容管理系统开发笔记

CC同学

阿里云 EMR Serverless Spark 版免费邀测中

阿里云大数据AI技术

大数据 spark 数据开发

新手程序员怎么在复杂的代码中寻找bug ?

小魏写代码

定时任务优化总结(从半个小时优化到秒级)

京东科技开发者

程序员担心被 AI 替代?听听这两位 CEO 怎么说

极狐GitLab

程序员 AI 大模型

【永久可用】IntelliJ IDEA 2023全版本激活码 适用于macOS/Windows

Rose

intellij idea 2023激活码 intellij idea 2023中文版

Java 8 内存管理原理解析及内存故障排查实践

vivo互联网技术

实现原理 回收算法 性能诊断及优化技巧

【亲测有效】axureRP9授权密钥 Mac/Windows

Rose

两场CVPR 2024 研讨会,一探大模型闭环真身

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 文心一言 文心大模型

日本股票盘搭建

GangguHK

掌静脉识别技术助力城轨交通:英特尔携手生态伙伴引领行业转型升级

E科讯

亮数据代理IP轻松解决爬虫数据采集痛点

袁袁袁袁满

React memo的原理、实践与思考

京东科技开发者

PD18虚拟机永久破解版 使用测评 含Parallels Desktop 18激活工具

Rose

Parallels Desktop 18 PD18虚拟机破解 macOS虚拟机

Acrobat Pro DC 2023直装破解版/便携版下载安装 及acrobat pro dc 2023新增功能介绍

Rose

pdf编辑器 Acrobat Pro DC 2023下载 Acrobat Pro DC便携版

以科技助力非遗文化传承,华为音乐空间音频让传统民乐重焕“新声”

最新动态

SecureCRT for mac如何进行远程连接?含SecureCRT mac永久激活秘钥

Rose

SecureCRT激活 SecureCRT Mac破解版 SecureCRT 安装教程 SecureCRT怎么用 远程管理

Beyond Compare 4 for Mac永久激活秘钥 Beyond compare 4中文汉化安装包

Rose

【稳定性】稳定性建设之依赖设计

京东科技开发者

一文让你简单了解跨境电商需要购买堡垒机的几大原因

行云管家

网络安全 电商 数据安全 堡垒机 跨境电商

Photoshop 2024最新中文直装版 含ps2024激活补丁 Mac/win

Rose

如何安装VMware Fusion Pro 13虚拟机?VM虚拟机密钥版详细安装教程

Rose

VMware Fusion Pro 13 VMware Fusion激活秘钥 VMware Fusion 虚拟机 VM安装教程

Redis Desktop Manager for mac中文版- Redis 的跨平台 GUI 管理工具

Rose

autocad2022序列号和密钥 autocad2022中文版详细图文安装教程

Rose

AutoCAD2022序列号 autocad2022秘钥 autocad2022破解版 cad2022Mac版

使用Space4J进行Java的内存持久化_Java_Dio Synodinos_InfoQ精选文章