《单线程的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
      流程图如下:
      在这里插入图片描述

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)

状态流程图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

适合高速驱动电路的推挽电路

http://www.dzsc.com/data/html/2008-9-10/69023.html 图1是使用NPN/PNP型晶体管的互补推挽电路,适于驱动功率MOSFET的门极。此电路虽然具有门极电流的驱动能力,但射极输出波形不能比输人信号快。 图2是此电路的开关波形。它表示出tf、tr都快&#xff0c…

socket编程常见函数使用方法

socket知识 有了IP地址,socket可知道是与哪一台主机的哪一个进程通信 有了端口号,就知道是这个进程的哪一个套接字进行传输 应用进程使用描述符与它的套接字进行通信,也就是说一个进程创建一个套接字时就会返回一个套接字描述符 socket的…

html 表格套表格_HTML表格

html 表格套表格A table is a set of rows and columns, which could be created on a webpage in HTML, by <table> tag. The tabular representation of complex data makes it readable. 表格是一组行和列&#xff0c;可以通过<table>标签在HTML网页上创建。 复…

HDU计算机网络系统2021复习提纲

目录计算机网络系统的主要功能TCP/IP模型与OSI模型的层次结构及各层功能。&#xff08;掌握&#xff09;TCP/IP参考模型各层次所对应的主要设备局域网的体系结构与IEEE.802标准数据链路层的编址方式和主要设备原理数据链路层CSMA/CD的技术原理交换机VLAN原理与划分方法数据链路…

掷骰子

Description: 描述&#xff1a; In this article, we are going to see a dynamic programing problem which can be featured in any interview rounds. 在本文中&#xff0c;我们将看到一个动态的编程问题&#xff0c;该问题可以在任何采访回合中体现。 Problem statement:…

《YOLO算法笔记》(草稿)

检测算法回顾 5、6年前的检测算法大体如下&#xff1a; 手动涉及特征时应该考虑的因素&#xff1a; 1、尺度不变性 2、光照不变性 3、旋转不变性 这一步骤称为特征工程&#xff0c;最重要的一个算法称为sift&#xff0c;(回顾SIFT讲解)体现了上述所有的观点。 在分类的过程中…

LLVM与Codegen技术

LLVM 百度百科 LLVM是构架编译器(compiler)的框架系统&#xff0c;以C编写而成&#xff0c;用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)&#xff0c;对开发者保持开放&#xff0c;并兼容已有…

html网页转图片_HTML图片

html网页转图片HTML图片 (HTML Images) Images are visuals of something that look elegant. In web pages, images are used to create a good and appealing design. 图像是外观精美的视觉效果。 在网页中&#xff0c;图像用于创建良好且吸引人的设计。 The <img> ta…

OLAP 技术之列式存储与数据压缩(快查询方法之一)

前言 列式存储和数据压缩&#xff0c;对于一款高性能数据库来说是必不可少的特性。一个非常流行的观点认为&#xff0c;如果你想让查询变得更快&#xff0c;最简单且有效的方法是减少数据扫描范围和数据传输时的大小&#xff0c;而列式存储和数据压缩就可以帮助我们实现上述两…

sql 视图嵌套视图_SQL视图

sql 视图嵌套视图SQL | 观看次数 (SQL | Views) Views in SQL are virtual tables. A view also has rows and columns as theyre during a real table within the database. We will create a view by selecting fields from one or more tables present within the database.…

Postgresql多线程hashjoin(inner join)

pg hashjoin 节点大致步骤&#xff1a; 1、分块与分桶。对一个表hash时&#xff0c;确定块数和桶数量。&#xff08;一块被划分为10个元组的桶&#xff09;确定分块号与分桶号是由hashvalue决定的。 2、执行&#xff1a; 1、顺序获取S表中所有元组&#xff0c;对每一条元组Has…

iframe实现局部刷新和回调--开篇

今天做项目遇到一个问题。就是提交表单的时候&#xff0c;验证用户名是否存在和验证码是否正确。 当验证码或者用户名存在的时候。在后台弹窗提示。可页面原本file里面符合要求的值刷新没了。用户体验不好。因为用ifream刷新技术已不是什么新鲜技术。所以网上有大把的资料可参考…

sjf调度算法_如何通过静态方法预测SJF调度中未来过程的突发时间?

sjf调度算法In SJF Scheduling, CPU is assigned to the process having the smallest burst time but it can not be implemented practically, because we dont know burst time of the arrived processes in advance. 在SJF Scheduling中 &#xff0c;将CPU分配给具有最短突…

Postgresql中的hybrid hash join(无状态机讲解)

hybrid hash join hybrid hash join是基于grace hash join 的优化。 在postgresql中的grace hash join 是这样做的&#xff1a;inner table太大不能一次性全部放到内存中&#xff0c;pg会把inner table 和outer table按照join的key分成多个分区&#xff0c;每个分区(有一个inn…

Web项目中获取SpringBean——在非Spring组件中获取SpringBean

最近在做项目的时候我发现一个问题&#xff1a;Spring的IOC容器不能在Web中被引用(或者说不能被任意地引用)。我们在配置文件中让Spring自动装配&#xff0c;但并没有留住ApplicationContext的实例。我们如果希望在我们的项目中任何位置都能拿到同一个ApplicationContext来获取…

postgresql对于HashJoin算法的Data skew优化与MCV处理

Data skew 很好理解&#xff0c;即数据倾斜。现实中的数据很多都不是正态分布的&#xff0c;譬如城市人口&#xff0c;东部沿海一个市的人口与西部地区一个市地区的人口相比&#xff0c;东部城市人口会多好几倍。 postgresql的skew的优化核心思想是"避免磁盘IO"。 优…

JavaScript | 创建对象并通过JavaScript函数在表中显示其内容

In this example, we created an object named employee with id, name, gender, city, and salary and assigned and displaying the values in the table using JavaScript function. 在此示例中&#xff0c;我们创建了一个名为employee的对象&#xff0c;其对象为id &#x…

基于socket的简单文件传输系统

【实验目的及要求】 在 Uinx/Linux/Windows 环境下通过 socket 方式实现一个基于 Client/Server 文件传输程序。 【实验原理和步骤】 1. 确定传输模式:通过 socket 方式实现一个基于 Client/Server 或 P2P 模式的文件传输程序。 2. 如果选择的是 Client/Server 模式的文件传输…

Postgresql的HashJoin状态机流程图整理

状态机 可以放大观看。 HashJoinState Hash Join运行期状态结构体 typedef struct HashJoinState {JoinState js; /* 基类;its first field is NodeTag */ExprState *hashclauses;//hash连接条件List *hj_OuterHashKeys; /* 外表条件链表;list of …

JqueryUI入门

Jquery UI 是一套开源免费的、基于Jquery的插件&#xff0c;在这里记录下Jquery UI 的初步使用。 第一、下载安装 下载Jquery,官网&#xff1a;http://jquery.com;  下载Jquery UI&#xff0c;官网&#xff1a;http://jqueryui.com/ Jquery的部署就不说了&#xff0c;说下Jqu…