(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202211089539.X
(22)申请日 2022.09.07
(65)同一申请的已公布的文献号
申请公布号 CN 115168410 A
(43)申请公布日 2022.10.11
(73)专利权人 北京镜舟 科技有限公司
地址 100096 北京市海淀区西三 旗建材城
内4幢一层1 17号
(72)发明人 方祝和
(74)专利代理 机构 北京华夏泰和知识产权代理
有限公司 1 1662
专利代理师 卢万腾
(51)Int.Cl.
G06F 16/2453(2019.01)
G06F 16/2455(2019.01)G06F 16/22(2019.01)
G06F 12/1036(2016.01)
G06F 12/0811(2016.01)
G06F 12/0842(2016.01)
G06F 9/38(2006.01)
G06F 9/50(2006.01)
(56)对比文件
CN 114969111 A,2022.08.30
CN 113656369 A,2021.1 1.16
CN 109086407 A,2018.12.25
CN 114328504 A,202 2.04.12
US 201918 8314 A1,2019.0 6.20
潘潁.自适应 遗传算法在分布式数据. 《内蒙
古师范大学学报 (自然科 学汉文版) 》 .2016,第45
卷(第1期),第1-4页.
审查员 陈治训
(54)发明名称
算子执行方法、 装置、 电子设备及存 储介质
(57)摘要
本发明实施例涉及计算机技术领域, 为解决
现有技术中无法提升数据库算子执行速度的技
术问题, 本发明实施例涉及一种算子执行方法、
装置、 电子设备及存储介质, 所述方法包括: 确定
待处理的目标数据表以及待执行的目标算子; 将
所述目标数据表进行分区, 得到多个表数据分
区; 针对每个所述表数据分区, 启动至少一个第
一线程, 其中, 每个所述第一线程启动多个第一
协程交替执行预设的数据项处理操作, 以得到所
述表数据分区对应的哈希表, 每个所述第一协程
利用单指令多数据流执行所述数据项处理操作;
基于每个所述表数据分区的所述哈希表执行所
述目标算子。 由此, 能够实现提高数据库算子的
执行性能。
权利要求书2页 说明书14页 附图6页
CN 115168410 B
2022.12.20
CN 115168410 B
1.一种算子执 行方法, 其特 征在于, 所述方法包括:
确定待处 理的目标 数据表以及待执 行的目标算子;
将所述目标数据表进行分区, 得到多个表数据分区, 包括: 根据数据项key值的比特位
数以及设定的数据容量阈值对所述目标数据 表进行分区, 得到多个表数据分区, 其中, 每个
所述表数据分区中的数据容量不超过所述数据容量阈值且同一所述表数据分区中数据项
key值的比特位数相同, 所述数据容量阈值通过以下方式设定: 根据所述目标算子的算子类
型、 页表缓存器TLB对应的数据容量, 以及末级高速缓存LLC对应的数据容量, 确定所述数据
容量阈值;
针对每个所述表数据分区, 启动至少一个第一线程, 其中, 每个所述第 一线程启动多个
第一协程交替执行预设的数据项处理操作, 以得到所述表数据分区对应的哈希表, 每个所
述第一协程利用单指令多数据流执 行所述数据项处 理操作;
所述启动至少一个第一线程, 包括:
根据所述目标算子的算子类型, 确定目标线程数量, 所述目标线程数量为不小于1的整
数, 包括: 在所述目标算子为第一类型算子的情况下, 确定所述目标线程数量为一个, 其中,
所述第一类型算子的执行过程包括两个 或两个以上执行阶段; 在所述目标算子为第二类型
算子的情况下, 确定所述目标线程数量为两个或两个以上, 其中, 所述第二类型算子的执行
过程包括 一个执行阶段;
按照所述目标线程数量启动第一线程;
基于每个所述表数据分区的所述哈希 表执行所述目标算子 。
2.根据权利要求1所述的方法, 其特征在于, 所述基于每个所述表数据分区的所述哈希
表执行所述目标算子, 包括:
在所述目标算子为第 二类型算子的情况下, 将两个或者两个以上所述第 一线程执行时
得到的所述哈希 表进行合并, 得到合并哈希 表;
基于所述 合并哈希 表执行所述目标算子 。
3.根据权利要求1所述的方法, 其特征在于, 所述数据项处理操作包括两个或两个以上
数据项处理子操作, 所述第一线程通过以下方式实现启动多个第一协程交替执行所述数据
项处理操作:
创建多个第一协程;
顺次针对每个所述数据项处理子操作, 轮询所述多个第一协程, 通过轮询到的所述第
一协程执 行所述数据项处 理子操作。
4.根据权利要求3所述的方法, 其特征在于, 所述通过轮询到的所述第 一协程执行所述
数据项处 理子操作, 包括:
从表数据分区中选取N个未处 理的数据项, 所述 N为预设的正整数;
通过轮询到的所述第一协程对所述 N个未处理的数据项执 行所述数据项处 理子操作。
5.根据权利要求1所述的方法, 其特征在于, 所述基于每个所述表数据分区的所述哈希
表执行所述目标算子, 包括:
基于每个所述表数据分区的所述哈希 表, 利用单指令多数据流执 行所述目标算子 。
6.根据权利要求1所述的方法, 其特征在于, 在所述目标算子为哈希连接算子的情况
下, 所述目标数据 表包括第一数据表和 第二数据 表, 所述将所述目标数据 表进行分区, 得到权 利 要 求 书 1/2 页
2
CN 115168410 B
2多个表数据分区, 包括:
将所述第一数据表进行分区, 得到多个第一表数据分区, 以及将所述第二数据表进行
分区, 得到多个第二表数据分区;
所述基于每个所述表数据分区的所述哈希表, 利用单指令多数据流执行所述目标算
子, 包括:
针对每个所述第 二表数据分区的第 二哈希表, 启动一个第 二线程, 其中, 所述第 二线程
启动多个第二协 程交替执行预设的算子执行操作, 每个所述第二协 程利用单指 令多数据流
执行所述算子执行操作。
7.根据权利要求6所述的方法, 其特征在于, 所述第 二协程利用单指令多数据流执行所
述算子执行操作, 包括:
从所述第二哈希 表中选取M个第二哈希值;
针对所述M个第二哈希值中的每个第二哈希值, 从满足预设条件的第一哈希表中查找
与所述第二哈希值相匹配的目标第一哈希值;
在从所述第 一哈希表中查找到所述目标第 一哈希值的情况下, 将所述目标第 一哈希值
对应的数据项与所述第二哈希值对应的数据项连接 。
8.一种算子执 行装置, 其特 征在于, 所述装置包括:
确定模块, 用于确定待处 理的目标 数据表以及待执 行的目标算子;
分区模块, 用于将所述目标数据表进行分区, 得到多个表数据分区, 包括: 根据数据项
key值的比特位数以及设定的数据容量阈值对所述 目标数据表进行分区, 得到多个表数据
分区, 其中, 每个所述表数据分区中的数据容量不超过所述数据容量阈值且同一所述表数
据分区中数据项key值的比特位数相同, 所述数据容量阈值通过以下方式设定: 根据所述目
标算子的算子类型、 页表缓存器TLB对应的数据容量, 以及末级高速缓存LLC对应的数据容
量, 确定所述数据容 量阈值;
启动模块, 用于针对每个所述表数据分区, 启动至少一个第一线程, 其中, 每个所述第
一线程启动多个第一协 程交替执行预设的数据项处理操作, 以得到所述表数据分区对应的
哈希表, 每个所述第一协程利用单指令多数据流执行所述数据项处理操作; 所述启动至少
一个第一线程, 包括: 根据所述 目标算子的算子类型, 确定目标线程数量, 所述目标线程数
量为不小于1的整数, 包括: 在所述目标算子为第一类型算子的情况下, 确定所述 目标线程
数量为一个, 其中, 所述第一类型算子的执行过程包括两个或两个以上执行阶段; 在所述目
标算子为第二类型算子的情况下, 确定所述目标线程数量为两个或两个以上, 其中, 所述第
二类型算子的执 行过程包括 一个执行阶段; 按照所述目标线程数量启动第一线程;
执行模块, 用于基于每 个所述表数据分区的所述哈希 表执行所述目标算子 。
9.一种电子设备, 其特征在于, 包括: 处理器和存储器, 所述处理器用于执行所述存储
器中存储的算子执 行程序, 以实现权利要求1~7中任一项所述的算子执 行方法。
10.一种存储介质, 其特征在于, 所述存储介质存储有一个或者多个程序, 所述一个或
者多个程序可被一个或者多个处理器执行, 以实现权利要求1~7中任一项所述的算子执行
方法。权 利 要 求 书 2/2 页
3
CN 115168410 B
3
专利 算子执行方法、装置、电子设备及存储介质
文档预览
中文文档
23 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共23页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:14:50上传分享