paperbot · PL 论文追踪

全部论文 待读 收藏

P2 <i>TeraHeap</i> : Exploiting Flash Storage for Mitigating DRAM Pressure in Managed Big Data Frameworks

TeraHeap:利用闪存存储缓解托管大数据框架中的 DRAM 压力
TOPLAS 46(4)2024匹配度 1/10 · 该论文属于托管运行时与内存管理系统方向(JVM 第二堆、GC 扫描优化、DRAM/闪存混合内存),与用户画像关注的三条主线——面向 ML/Agentic 程序的静态分析、LLM/Agent 改进静态分析与形式化验证、浮点与贝叶斯程序分析——均无交叉;既无形式化理论,也不涉及 LLM 或程序分析技术。引用 3 inbox
Iacovos G. Kolokasis, Giannos Evdorou, Shoaib Akram, Christos Kozanitis, Anastasios Papagiannis, Foivos S. Zakkak, Polyvios Pratikakis, Angelos Bilas
crossref: 2026-09-10

AI 速览

一句话:TeraHeap 通过扩展 JVM 在闪存上建立第二堆,消除大数据框架对象的序列化/反序列化与 GC 扫描开销,缓解 DRAM 压力。

Spark、Giraph 等大数据框架需缓存可能超出托管堆的数据集,常将长生命周期对象移到快速存储,导致高序列化/反序列化开销和对象移回时的内存压力。TeraHeap 扩展 JVM,在快速存储上建立第二高容量堆 H2,并用提示接口让框架填充 H2;它阻止 GC 扫描 H2 对象,同时维持单一托管堆抽象和内存安全。作者在 OpenJDK8/17 实现,并用 Spark、Giraph 上 15 个应用评估:相同 DRAM 下性能最高提升 73%/28%,可少用最多 4.6×/1.2× DRAM;在 Neo4j GDS 上提升 26%,并比 Panthera 高 69%。

问题
大数据框架缓存超出托管堆的数据集时,将长生命周期对象移到快速存储设备会引入高序列化/反序列化成本和对象回迁时的内存压力。
方法
TeraHeap 扩展 JVM,以闪存上的第二堆 H2 承载对象,提供提示接口,并让 GC 不扫描 H2 对象而仍维持单一托管堆与内存安全。
评估
在 OpenJDK8/17 中实现,用 Spark、Giraph 的 15 个应用及 Neo4j GDS 评估,和原生系统及 Panthera GC 对比性能与 DRAM 占用。
原文摘要(Abstract)

Big data analytics frameworks, such as Spark and Giraph, need to process and cache massive datasets that do not always fit on the managed heap. Therefore, frameworks temporarily move long-lived objects outside the heap (off-heap) on a fast storage device. However, this practice results in (1) high serialization/deserialization (S/D) cost and (2) high memory pressure when off-heap objects are moved back for processing. In this article, we propose TeraHeap , a system that eliminates S/D overhead and expensive GC scans for a large portion of objects in analytics frameworks. TeraHeap relies on three concepts: (1) It eliminates S/D by extending the managed runtime (JVM) to use a second high-capacity heap (H2) over a fast storage device. (2) It offers a simple hint-based interface, allowing analytics frameworks to leverage object knowledge to populate H2. (3) It reduces GC cost by fencing the collector from scanning H2 objects while maintaining the illusion of a single managed heap, ensuring memory safety. We implement TeraHeap in OpenJDK8 and OpenJDK17 and evaluate it with fifteen widely used applications in two real-world big data frameworks, Spark and Giraph. We find that for the same DRAM size, TeraHeap improves performance by up to 73% and 28% compared to native Spark and Giraph. Also, it can still provide better performance by consuming up to \(4.6\times\) and \(1.2\times\) less DRAM than native Spark and Giraph, respectively. TeraHeap can also be used for in-memory frameworks and applying it to the Neo4j Graph Data Science library improves its performance by up to 26%. Finally, it outperforms Panthera, a state-of-the-art garbage collector for hybrid DRAM-NVM memories, by up to 69%.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2669,
  title = {<i>TeraHeap</i>
            : Exploiting Flash Storage for Mitigating DRAM Pressure in Managed Big Data Frameworks},
  author = {Iacovos G. Kolokasis and Giannos Evdorou and Shoaib Akram and Christos Kozanitis and Anastasios Papagiannis and Foivos S. Zakkak and Polyvios Pratikakis and Angelos Bilas},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {46},
  number = {4},
  year = {2024},
  doi = {10.1145/3700593}
}