微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flink 源码阅读笔记7- 内存管理

基于 JVM 的大数据处理分析引擎面临的一个问题是,为了高效地处理数据,有大量的数据需要保存在内存中。直接使用 JVM 堆内存来管理这些数据对象是最简单的实现,但是这样会导致一系列问题:首先,在有大量的数据对象不停地创建和失效的情况下,要正常地管理和控制堆内存并非易事,很容易引发 OOM 问题;其次,GC 会严重影响性能,尤其是为了处理海量数据而分配了较大的内存空间,GC 开销很容易就能达到 50% 以上;最后,Java 对象存储本身存在开销,对于那种本身是小对象的数据集而言,对象头、对齐填充这些存储开销非常浪费。

为了解决上述的问题,主流的数据处理引擎如 Spark、Flink 等有一套自己的内存管理机制,这套内存管理机制看上去更贴近 C/C++,接下来我们将分析 Flink 是如何管理内存的。

待更新。。。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐