Deca:内存中数据处理的垃圾收集优化器

在Spark和Flink等大数据处理系统中,中间数据的存储器处理和随机缓冲区中数据的主动组合对于最大限度地减少重新计算次数和降低I/O成本是非常有效的。然而,也有广泛的报道称,这些技术将将在堆中创建大量活动时间较长的数据对象。这些生成的对象,特别是在处理大型数据集时,可能会迅速使垃圾收集器饱和,因此会限制系统的可伸缩性。为了解决这个问题,我们提出了一个基于生存期的内存管理框架,该框架通过自动分析用户定义的函数和数据类型,获得数据对象的预期生存期,然后相应地分配和释放内存空间,以最小化垃圾收集开销。特别地,我们提出了Deca,这是我们在Spark之上的提案的具体实现,它透明地将具有类似生命周期的对象分解和分组为字节数组,并在生命周期结束时释放它们的空间。当系统处理非常大的数据时,Deca还提供面向字段的内存页,以确保高压缩效率。大量的综合和真实数据的实验研究表明,与Spark相比,Deca能够(1)将垃圾收集时间减少99.9%,(2)将内存消耗减少46.6%,将存储空间减少23.4%,(3)在没有数据溢出的情况下,执行时间达到1.2倍到22.7倍的加速,在没有数据溢出的情况下,执行时间达到16倍到41.6倍的加速,并且(4)与特定领域的系统相比,具有类似的性能。

Fig. 9.

当数据对象具有多个容器时,deca中的内存布局示例。

原文地址:https://dl.acm.org/citation.cfm?id=3310361

联系我们

地 址:广州市番禺区大学城中山大学资讯管理学院B栋B305
邮政编码:510000
联 系 人:李启元老师
电 话:+86-20-39336519
电子邮箱:hpcoffice@gdhpcs.org
网 址:http://sdcs.sysu.edu.cn/gdhpcs/