[发明专利]分布式内存列式数据库的生成代码复用匹配管理方法有效
申请号: | 201910394841.8 | 申请日: | 2019-05-13 |
公开(公告)号: | CN110096274B | 公开(公告)日: | 2021-04-02 |
发明(设计)人: | 段翰聪;刘长红;冯杰;闵革勇;敖齐平 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F8/36 | 分类号: | G06F8/36;G06F8/41;G06F16/22 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 李朝虎 |
地址: | 610000 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 内存 数据库 生成 代码 匹配 管理 方法 | ||
本发明公开了分布式内存列式数据库的生成代码复用匹配管理方法,解决了现有的代码生成和复用方法无法适应表达式的各种复杂情况,对一复杂的等价表达式的匹配和复用,其无法满足情况;并且,未提出关于Pipeline代码的匹配方法的问题。本发明包括创建映射关系,包括:对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为属性,代码标识;匹配等价性,包括:从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,若匹配成功则实现代码缓存复用;若匹配失败则执行创建映射关系。本发明通过两种类型的代码复用匹配方法,减少了重复生成代码导致的代码生成和编译成可执行代码时间过长问题。
技术领域
本发明涉及分布式内存列式数据库的编译执行方式下匹配复用以及管理动态生成的代码的方法技术领域,具体涉及分布式内存列式数据库的生成代码复用匹配管理方法。
背景技术
在经典的数据库火山模型中,执行流程从语法树根节点开始,递归调用子节点处理函数进行处理,到达叶节点后取出相应表的一行数据进行处理并依次返回。在每次递归调用流程中只对一行数据进行处理导致了很差的代码局部性,包括过多的函数调用;还导致了很差的数据局部性,因为每次读取只需要一部分数据,进而使得CPU Cache频繁换入换出。因而火山模型极度不适合海量数据的分析处理。
在海量数据分析处理系统中(包括Spark SQL等),普遍使用的是向量化(Vectorization)模型,即一种批处理模型。在向量化模型中,每次取出一列或几列进行批处理运算,再对结果与其他列进行运算;其整个流程用有向无环图DAG表示,则一次批处理运算代表一个节点,完成该节点运算后将结果推送到其他节点。这种模型具有很好的代码局部性和数据局部性。但其需要多次大量地将中间结果写入内存(即物化)。
于是,一些数据库,如Hyper,提出了Pipeline的执行模型,将多次批处理运算融合到一个Pipeline计算中。在能够融合的多次批处理运算形成的Pipeline中,在单个函数中,每次对单个元组进行计算并传递,最终能减少物化。
但Pipeline执行方式的效率提升依赖于:
1、需要能够根据执行计划动态生成合适的Pipeline代码,以合并对多个批处理的计算,因为难以在开发时即抽象出各种满足所有功能需求的算子;
2、需要将处理代码以及其调用的函数尽可能上提或内联,减少函数调用,提升代码局部性;同时在运行时生成执行代码能利用运行时信息提升代码质量。
目前,现有的代码生成和复用方法使用了LLVM对表达式,如聚合函数、排序函数、数据预取函数等进行生成、缓存,并在下次使用时进行查询,其将函数表示为一定的格式字符串以代表函数的功能,如int型的相加表示为类似“INT_PLUS_INT”这样的字符串。但现有的代码生成和复用方法存在如下的缺点:该表示和匹配方法十分粗略,无法适应表达式的各种复杂情况,如对一复杂的等价表达式的匹配和复用,其无法满足情况;并且,未提出关于Pipeline代码的匹配方法。
发明内容
本发明所要解决的技术问题是:现有的代码生成和复用方法十分粗略,无法适应表达式的各种复杂情况,对一复杂的等价表达式的匹配和复用,其无法满足情况;并且,未提出关于Pipeline代码的匹配方法。本发明提供了解决上述问题的分布式内存列式数据库的生成代码复用匹配管理方法,实现对生成代码的映射关系管理方法,包括创建多个属性、属性具体的内容,给出了对Pipeline生成代码的等价性比较方法和对表达式代码的等价性比较方法,以及对含常量表达式进行抽象再生成代码的方法。
本发明通过下述技术方案实现:
分布式内存列式数据库的生成代码复用匹配管理方法,包括:
创建映射关系,包括:
对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为属性,代码标识;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910394841.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:生产型软件框架系统及软件访问系统
- 下一篇:一种页面处理方法及装置