美文网首页
Review-Juggling with Bits and By

Review-Juggling with Bits and By

作者: cctoken | 来源:发表于2019-04-14 12:52 被阅读0次

Overview

参考链接

Review

本文主要介绍了 flink 内部的内存模型。
传统的基于jvm执行的框架服务,在对data object 进行操作的时候,大部分是直接放在堆内部,这就容易导致一些问题,一个是内存是有限的,另外gc的时间也会随着内存变大而逐渐增长,内存无法申请到的时候会直接导致OutOfMemoryError,导致服务进程直接挂掉。纯粹靠经验以及process的data本身特性进行维护,是不可靠的,尤其是随着平台切换。

那么flink是如何做的呢?
flink首先申请堆的70%的内存,直接构建出一个long-lived 对象,用来存放二进制的data object,我们称这里的最小单元为MemorySegment,它的实现是基于java byte array的,这样一个long-lived segments 称之为 management memory。

它的生命周期是整个进程的生命周期,不会被回收,所有data object 的新增以及删除,都不是针对 segment本身的,而是对其内部的操作,这也就是说实际上memory segment是 reusable的。

因为 memory segment存放的是 二进制,所以不可避免的需要实现序列化。flink 将每个data type 伴随着一个 typeinformation,支持嵌套的序列化方式。

flink的操作也是基于 binary data的,如何操作在文中已经展示,后续单独文章说明。

相关文章

网友评论

      本文标题:Review-Juggling with Bits and By

      本文链接:https://www.haomeiwen.com/subject/uxijwqtx.html