写点什么

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

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

关注

评论

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

NTFS Disk by Omi NTFS for mac(NTFS 磁盘管理器)安装简单 兼容m芯片

理理

火山引擎数据飞轮升级实验平台架构,解决人效与成本问题

Geek_2d6073

AIOps:解决企业IT挑战的智能利器

雅菲奥朗

运维 可观测性 AIOPS SRE

macOS Sequoia 15(Macos15系统)v15.0 Beta 3测试版本

Rose

Macs Fan Control Pro风扇预设介绍 Macs Fan Control Pro mac风扇转速和温度

Rose

Microsoft Remote Desktop如何远程Windows电脑?

理理

腾讯云大数据连续三年蝉联中国大数据市场领导者象限

腾讯云大数据

腾讯云 大数据

(2024最新)Pycharm破解激活2099年激活码教程(含win+mac)

理理

参加DevSecOps认证培训 ,掌握安全高效的软件开发

雅菲奥朗

运维 SRE DevSecOps

Axure RP教程(Axure RP中文授权码),如何查看和共享您的原型?

Rose

DriveDx for mac(mac磁盘健康检测和监控工具)v1.12.1激活版

理理

解决 SecureCRT中文乱码方法(附SecureCRT mac永久注册码)

Rose

【永久密钥】VMware Fusion Pro 13 for Mac(VM虚拟机)v13.5.0激活版

Rose

NTFS磁盘格式读写工具 Tuxera 2022 mac注册版 及破解教程

Rose

如何激活Parallels Desktop 18虚拟机?PD18破解激活教程

理理

AI心灵伙伴:数业智能心大陆如何提升年轻成人的心理健康?

心大陆多智能体

压力 智能体 AI大模型 心理健康 数字心理

photoshop2020电脑配置要求 ps 2020中文直装版下载【Mac/win】

理理

华为大咖说 | 数字时代的财富秘诀:数据资产化全攻略

华为云PaaS服务小智

华为云 资产管理

理解 gRPC 与 REST:选择适合您项目的最佳 API 方案

Liam

程序员 gRPC 后端 Rest API

Parallels Desktop 19 for Mac(PD19虚拟机)无需关闭sipv19.1.0一键激活版

Rose

KES数据库实践指南:探索KES数据库的事务隔离级别

EquatorCoco

数据库 oracle

Cornerstone意外退出的解决方法 Cornerstone 4.2永久激活版 Mac SVN工具

Rose

数据驱动运维:如何通过可观测性实现AIOps的突破

雅菲奥朗

运维 可观测性 AIOPS Observability 人工智能运维

深入了解 DN-404:引领 NFT 市场的创新标准

NFT Research

NFT\ web3、 ERC404

Beyond Compare 4 文件同步对比工具|适用于PC端和macOS电脑

理理

新手必看!sublime text 快捷键大集合

Rose

使用css制作心形图案并且添加动画心动效果

源字节1号

开源

set a light 3d studio 2.5汉化版 Mac 3D模拟布光软件

理理

2024 TDengine 用户大会:顶尖专家带你决胜 AI 新时代

TDengine

顶级免费缺陷管理工具评测:你的最佳选择

爱吃小舅的鱼

缺陷管理 缺陷跟踪 缺陷管理软件推荐

跨平台的SSH、Telnet和SFTP客户端 Termius for Mac v8.4.0激活版

Rose

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