写点什么

Terracotta 的 BigMemory 力图消除针对 Java 缓存的垃圾回收

  • 2010-09-27
  • 本文字数:1416 字

    阅读完需:约 5 分钟

Terracotta 在解决 Java 应用的垃圾回收引起的暂停问题方面做出了最新的尝试。GC 暂停问题在严重依赖缓存的应用中表现的比较突出。许多垃圾回收器将新、旧对象分代隔离,并发处理较年轻的对象,但是在处理老对象时却不得不采取全局暂停操作(stop-the-world)。通过将长期存在的对象放入内存,缓存在处理这些对象时会激化全局暂停的问题。Terracotta 的解决方案名为 BigMemory™ for Enterprise Ehcache,特意采用了独有的内存管理系统。

“如今,开发人员使用消耗时间的技术来处理大数据集合——例如,使用大量的 VM(分配小堆)”,Terracotta 的 CTO Ari Zilka 说:

BigMemory for Enterprise Ehcache 使 GC 调优的神秘色彩一去不复返。企业可以充分利用现代服务器的能力实现因内存数据带来的性能提高,同时把数据中心的服务器合并。

BigMemory 被视为 Azul 的 Zing 的竞争者,Zing 为基于 Intel 和 AMD 的服务器提供无暂停的垃圾回收。但是,这两种产品采取了不同的方法。Azul 的解决方案使用软件技术提供了一种垃圾回收算法,能够与应用并发运行,因此,需要 Azul 的 Java 虚拟机。BigMemory 则是通过管理在堆外存放在缓存中的数据来减少垃圾回收的压力,类似于采用 C 语言编写的应用。因此,目前没有使用缓存代码的应用需要改变代码,但是对于已经使用缓存(如 Hibernate Cache)的应用来说,JVM 不需要变化。

InfoQ 采访了 Terracotta 的首席执行官 Amit Pandey。Pandey 表示,虽然 Terracotta 的 Ehcache 支持单节点和多节点,但是 Terracotta 的用户中 80-85% 都在使用单节点缓存。这些用户可能还没有准备好采用完全分布式的架构,但是他们在扩展性和性能方面存在一些问题。对于这些客户,BigMemory 提供了一种办法:

“当他们尝试扩展已经放入内存或者堆里的数据集大小时,就会遇到垃圾回收问题和性能问题。因此,他们只能发挥很小的潜力。”

Pandey 告诉我们,最初 Terracotta 是解决自己的 Java 服务器的垃圾回收问题,今年早些时候才决定开发自己的内存管理器,采用 Java 编写。做完之后,他们决定将其集成到 Ehcache 产品中并投放市场。Pandey 表示,大部分客户在堆达到 4GB 左右的时候就会面临困境。

在 Java 世界,我们的产品提供了将大量数据放入 Encache 的能力。我们已经测试了超过 100GB 数据,性能表现平稳,包括响应时间、SLA、最大垃圾回收暂停时间,这是因为我们基本上不做 GC 暂停。因此,如果你的应用在 1GB 的堆里 GC 时间为 1 秒,那么引入 Ehcache,将数据脱离堆,仍然在内存中,你可以达到 100GB 而且 GC 时间几乎保持不变。

下图(感谢 Terracotta 提供)是针对真实应用抽象和模块化得出的数据。

我们还谈到了内存管理器的工作原理,Pandey 说:

… 我们没有做垃圾回收。我们的内存管理方式和其他语言非常类似。现在,我们把数据都存放在线性数据结构中。因此,不会存在分代问题等等,我们的应用负责处理这些问题。你在堆上有些数据并按照正常的方式处理,但是你也可以把堆设的很小,然后把所有其他数据都放到我们的数据结构中,我们来处理。我们引入了一些非常精妙的算法,能够处理碎片等,因为我们是在离线模式下操作,所以不会降低应用运行速度。

虽然 BigMemory 的目标市场是那些不想构建完全分布式架构的人,但是该产品在分布式缓存中同样有效。

该产品目前处在 beta 阶段,预计十月份发布 GA 版。具体价格将在这之前公布。

查看英文原文: Terracotta’s BigMemory Aiming to Eliminate Garbage Collection for Java Caches

2010-09-27 04:243405
用户头像

发布了 501 篇内容, 共 284.5 次阅读, 收获喜欢 64 次。

关注

评论

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

618技术揭秘:探究竞速榜页面核心前端技术 | 京东云技术团队

京东科技开发者

前端 H5页面 海报生成 动画特效 企业号 6 月 PK 榜

一种读取亿级doris数据库的方法 | 京东云技术团队

京东科技开发者

MySQL 数据库 Doris 企业号 6 月 PK 榜

小程序技术分享| 小程序集成 pixi 渲染引擎

anyRTC开发者

小程序 音视频 canvas pixi 渲染

这样做,轻松拿捏阻焊桥!

华秋PCB

工具 电路 PCB PCB设计 阻焊

中国高校最大云上科研智算平台上线!

新云力量

智能 计算 复旦大学

实践讲解强化学习之梯度策略、添加基线、优势函数

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

这场世界级的攻坚考验,华为云GaussDB稳过

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

据平台流量回放最佳实践|精选

得物技术

前端 后端

.NET的基元类型包括哪些?Unmanaged和Blittable类型又是什么?一文带你深度解析

不在线第一只蜗牛

.net 编程

消息中间件最强笔记大全:MQ+Kafka+体系图+笔记

小小怪下士

Java 消息队列 消息中间件

软件测试/测试开发丨Python常用数据结构学习笔记

测试人

Python 数据结构 软件测试 集合 列表

精选Golang高频面试题和答案汇总

王中阳Go

golang 面试八股文 go面试题 Go面试宝典

Python开发中自动化构建项目结构样式

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

一种接口依赖关系分层方案 | 京东云技术团队

京东科技开发者

依赖关系 接口优化 API 接口 企业号 6 月 PK 榜 接口分层

联合打造!嘉为蓝鲸携手麒麟软件共建智能运维解决方案

嘉为蓝鲸

运维 AIOPS

Spring事件监听机制使用和原理解析

不在线第一只蜗牛

spring springboot

「学习笔记」记忆化搜索

互联网工科生

学习笔记

数字化转型与架构-规划篇|满足用户期望和用户需求说:“不”

数字随行

数字化转型

如何加强数据资产管理?专家共话分级分类实战宝典

说山水

关于项目初期,数据量小的内容推荐的实现方法

北桥苏

推荐算法 个性化推荐 协同过滤 内容推荐

嘉为蓝鲸入选《信息技术服务运维工具名录》及《IT服务工具图谱》

嘉为蓝鲸

运维 信息技术 ITSS

和鲸助力中国大学生计算机设计大赛国赛作品评审标准落实研讨会召开,专家平台首发布

ModelWhale

人工智能 专家 数据科学 研讨会 中国计算机设计大赛

低代码平台对程序员友好吗?

互联网工科生

低代码 可视化 JNPF

Maven进阶学习指南 | 京东云技术团队

京东科技开发者

maven 组件 依赖 Maven仓库 企业号 6 月 PK 榜

HTML5 游戏开发实战 | 五子棋

TiAmo

html html5 游戏 6 月 优质更文活动

版本动态 | SolidUI 0.1.0 版本发布

李孟聊AI

Web 2D 3D AIGC ChatGPT

华为云能力中心开业暨项目签约活动圆满举办!

新消费日报

Terracotta的BigMemory力图消除针对Java缓存的垃圾回收_Java_Charles Humble_InfoQ精选文章