2.统一的数据交换对象

​ 在Flink的执行引擎中,流动的元素主要有两种:缓冲(Buffer)和事件(Event)。Buffer主要针对用户数据交换,而Event则用于一些特殊的控制标识。但在实现时,为了在通信层统一数据交换,Flink提供了数据交换对象——BufferOrEvent。它是一个既可以表示Buffer又可以表示Event的类。上层使用者只需调用isBuffer和isEvent方法即可判断当前收到的这条数据是Buffer还是Event。

3.缓冲

​ 缓冲(Buffer)是数据交换的载体,几乎所有的数据(当然事件是特殊的)交换都需要经过Buffer。Buffer底层依赖于Flink自管理内存的内存段(MemorySegment)作为数据的容器。Buffer在内存段上做了一层封装,这一层封装是为了对基于引用计数的Buffer回收机制提供支持。

引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象、内存或磁盘)的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。使用引用计数技术可以实现自动资源管理的目的。具体做法可简述为:当创建一个对象的实例并在堆上申请内存时,对象的引用计数就为1ÿ

95-290-382-源码-内存管理-Buffer-Flink运行时之统一的数据交换对象相关推荐

  1. 阅读micropython源码-内存管理组件GC

    阅读micropython源码-内存管理组件GC 苏勇,2021年8月 文章目录 阅读micropython源码-内存管理组件GC 初探micropython中的内存管理机制 分析指定的内存相关参数 ...

  2. 详细讲解Linux内核源码内存管理(值得收藏)

    Linux的内存管理是一个非常复杂的过程,主要分成两个大的部分:内核的内存管理和进程虚拟内存.内核的内存管理是Linux内存管理的核心,所以我们先对内核的内存管理进行简介. 一.物理内存模型 物理内存 ...

  3. Linux软件安装管理 - CentOS (三) ---- 源码包管理

    1. 软件包管理简介 2. rpm命令管理(Redhat Package Manager) 3. yum在线安装 4. 源码包管理 4.1 源码包和RPM包的区别 4.1.1 区别 安装前:概念上的区 ...

  4. mysql buffer 命中率_从MySQL的源码剖析Innodb buffer的命中率计算

    按官方手册推荐Innodb buffer Hit Ratios的计算是: 100-((iReads / iReadRequests)*100) iReads : mysql->status-&g ...

  5. linux crontab 每5分钟执行一次_第十一章:走进Linux世界——源码包管理and任务计划。...

    一.文件管理 (1)概述 Source Code 源代码经过GCC.C++编译环境编译才能运行 可以设定个人设置,开关功能 (2)源码包管理 获取源码包--官网下载到真机,然后 rz 命令上传到虚拟机 ...

  6. 药店管理系统源码 药店管理信息系统源码带文档

    药店管理系统源码 药店管理信息系统源码带文档 开发语言:C#  数据库 : SQL2008 开发工具 : VS2010 源码免费分享,需要源码学习可私信我. 系统概述: 1.药品资料.药品库存可以批量 ...

  7. history源码解析-管理会话历史记录

    history是一个JavaScript库,可让你在JavaScript运行的任何地方轻松管理会话历史记录 1.前言 history是由Facebook维护的,react-router依赖于histo ...

  8. Linux基础命令(四)文件查找和压缩、软件安装、源码包管理

    目录 一.查找和压缩 1.文件查找 2.文件打包和压缩 二.软件安装 1.RPM包管理 三.源码包管理 一.查找和压缩 1.文件查找 (1)witch:命令查找 witch ls(命令) #查找ls命 ...

  9. java计算机毕业设计中国民航酒店分销系统源码+系统+lw+数据库+调试运行

    java计算机毕业设计中国民航酒店分销系统源码+系统+lw+数据库+调试运行 注意:该项目只展示部分功能,如需了解,文末获取源码地址. 临近学期结束,还是毕业设计,你还在做java程序.网络编程.课程 ...

最新文章

  1. SQLLite (二) :sqlite3_open, sqlite3_exec, slite3_close
  2. 《html5 从入门到精通》读书笔记(一)
  3. vba 不等于_EXCEL表格VBA中的运算符
  4. 嵌入式wifi 芯片 推荐_人工智能对汽车芯片设计的影响
  5. 你可能不太熟知的布局技巧
  6. go kegg_对miRNA进行go和kegg等功能数据库数据库注释
  7. RoadRunner安装与使用教程
  8. 全国地级市坐标、名称、编码获取 / 全球城市坐标位置
  9. pom文件变成灰色解决方案
  10. dsp的ad标志位是什么_DSP简简单单学习之AD采样
  11. 计算机毕业设计ssm龙腾集团员工信息管理系统39r5l系统+程序+源码+lw+远程部署
  12. 威廉.大内的Z理论(1981)--轉載
  13. 利用占空比的改变调节小车速度
  14. 2019-10-16 博客热门文章
  15. flutter国内镜像
  16. python 渗透率_python达
  17. 表情识别/情绪识别:ExpW表情数据集
  18. Python实现计算GPA加权平均分
  19. 大学生家乡主题网页制作 旅游网页设计模板 学生静态网页作业成品 dreamweaver家乡HTML网站制作
  20. 建筑工程规划电子报规

热门文章

  1. 小米11顶配版屏幕参数曝光:2K 120Hz高刷屏支持运动补偿
  2. 罗永浩今晚带货iPhone 12:价格将有惊喜!
  3. 这个黑科技,苹果给了iPhone11却不给新款iPad Pro?
  4. 情人节集体撤档,《肥龙过江》改网播,线上首映会成为常态吗?
  5. “谁在蹭热度?”小米冰箱由海尔代工?双方齐声明:没有进行任何合作
  6. 小米MIX 4要来了?这硬件“堆”的也是没谁了 全是最新技术
  7. 4月1日见!小米9王源定制版官宣:透明版背壳加持
  8. 程序员高工资是靠汗水和勤奋换来的,想拿高工资入门学习很重要
  9. 人生路上必须明白的七个哲理[转]
  10. 软件测试基础课程学习笔记7---如何撰写测试报告