《单线程的build hash table、write rows to chunks、hash join的步骤以及流程图》
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
流程图如下:
- 1、初始化
Write Rows to chunks流程
- 1、从
input
表(build 或者 probe)读row - 2、写入
chunk file
- 1、构造
join key
- 2、计算
hash key
并选择chunk file
- 3、写入相应的
chunk file
中
流程图如下:
- 1、构造
单线程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 input
有chunk file
,将probe input
表写入chunk file
- 4、从
hash map
里查找probe input
row的查询结果 - 5、goto(4)
- 1、从
(2)、state为
Loading next chunk pair
- 找到下一对
chunk pair
做hash join
- 找到下一对
(3)、state为
Reading row from probe input file
,读一个probe chunk
的row做hash join
- 1、从
probe chunk
读一行row - 2、在
hash table
里查询匹配 - 3、goto(4)
- 1、从
(4)、state为
Reading from hash table
,读取hash table
中匹配记录- 1、将查到的
row buffer
写入build input
表的record[0]
中 - 2、若读取完
hash table
中记录,goto(1)或者(3)
- 1、将查到的
状态流程图:
《单线程的build hash table、write rows to chunks、hash join的步骤以及流程图》相关推荐
- ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- 信息学奥赛真题解析(玩具谜题)
玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...
- 信息学奥赛一本通习题答案(五)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通习题答案(三)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通题目代码(非题库)
为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...
- 信息学奥赛一本通(C++版) 刷题 记录
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...
- 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离
首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...
最新文章
- python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色
- CSocket类的Receive超时的问题解决方案
- php如何缩小图片,PHP图片缩小函数一例
- biztalk BLogs
- 新版手机浏览器_夸克浏览器发布全新3.0版,AI技术创新智能化信息服务
- 中国开放教育资源协会_教育中的开放数据开始显示出真正的吸引力
- Docker加入白名单
- Python的单链表实现
- 【汇编】JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
- python aiml_Python AIML搭建聊天机器人实例
- idea快速生成SpringBoot项目无法启动问题
- 华为关闭telnet命令_华为交换机关闭Telnet、开启SSH服务命令
- 计算机操作系统课后答案--郁红英版
- 循环矩阵求特征值的方法
- 百度收录-如何使用API提交
- 转载: DEV控件:gridControl常用属性设置_人生一世 草木一秋_百度空间
- A load persistent id instruction was encountered, but no persistent_load function was specified.
- 只能存储12KB数据,“码农女神”是怎样把人类送上月球的?
- 《Android Studio开发实战 从零基础到App上线》第一版的资源下载和内容勘误
- javaScript Popup.js