Build Hash Table流程

  • 1、初始化row buffer
  • 2、从build input table中读一行
  • 3、若读完build input table所有row,返回状态READING_ROW_FROM_PROBE_item
  • 4、否则,向hash map中写入一条row
  • 5、如果hash map 写入成功,返回2,继续执行
  • 6、若hash map满了,则写chunk file
    • 1、初始化chunk file
    • 2、将剩余的row写入chunk file
    • 3、返回状态READING_ROW_FROM_PROBE_item
      流程图如下:

Write Rows to chunks流程

  • 1、从input表(build 或者 probe)读row
  • 2、写入chunk file
    • 1、构造join key
    • 2、计算hash key并选择chunk file
    • 3、写入相应的chunk file
      流程图如下:

单线程hash join 步骤

step1:初始化

  • build table init
  • memory buffer init
  • create hash map
  • probe table init
  • state 设为 Reading_Row_From_Probe_Iterator

step2:HashJoinIteratorRead,根据state做调整

  • (1)、state为Reading Row from probe iterator

    • 1、从probe table read一行row
    • 2、如果所有probe input row都读完了
      • 如果非spill to disk,对build input剩余的row构造hash map,重新对probe表做init,回到1继续
      • 如果为spill to disk,goto(2)
    • 3、如果build inputchunk file,将probe input表写入chunk file
    • 4、从hash map里查找probe inputrow的查询结果
    • 5、goto(4)
  • (2)、state为Loading next chunk pair

    • 找到下一对chunk pairhash join
  • (3)、state为Reading row from probe input file,读一个probe chunk的row做hash join

    • 1、从probe chunk读一行row
    • 2、在hash table里查询匹配
    • 3、goto(4)
  • (4)、state为Reading from hash table,读取hash table中匹配记录

    • 1、将查到的row buffer写入build input表的record[0]
    • 2、若读取完hash table中记录,goto(1)或者(3)

状态流程图:

《单线程的build hash table、write rows to chunks、hash join的步骤以及流程图》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色
  2. CSocket类的Receive超时的问题解决方案
  3. php如何缩小图片,PHP图片缩小函数一例
  4. biztalk BLogs
  5. 新版手机浏览器_夸克浏览器发布全新3.0版,AI技术创新智能化信息服务
  6. 中国开放教育资源协会_教育中的开放数据开始显示出真正的吸引力
  7. Docker加入白名单
  8. Python的单链表实现
  9. 【汇编】JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
  10. python aiml_Python AIML搭建聊天机器人实例
  11. idea快速生成SpringBoot项目无法启动问题
  12. 华为关闭telnet命令_华为交换机关闭Telnet、开启SSH服务命令
  13. 计算机操作系统课后答案--郁红英版
  14. 循环矩阵求特征值的方法
  15. 百度收录-如何使用API提交
  16. 转载: DEV控件:gridControl常用属性设置_人生一世 草木一秋_百度空间
  17. A load persistent id instruction was encountered, but no persistent_load function was specified.
  18. 只能存储12KB数据,“码农女神”是怎样把人类送上月球的?
  19. 《Android Studio开发实战 从零基础到App上线》第一版的资源下载和内容勘误
  20. javaScript Popup.js

热门文章

  1. 友盟U-share sdk 分享的接入(支持Android及IOS)
  2. 上架APPStore需要准备哪些材料?
  3. 教你玩转CSS 图像透明/不透明
  4. css用一张大图片来设置背景的技术真相
  5. CSS3 Transform、Transition和Animation属性总结
  6. 盒模型的属性丶display显示丶浮动
  7. SqlServer知识点
  8. Spark Streaming整合logstash + Kafka wordCount
  9. Css Sprites 多张图片整合在一张图片上
  10. Owner Useful links