[发明专利]一种分布式数据库系统查询中间结果集的缓存方法有效
申请号: | 201910166410.6 | 申请日: | 2019-04-12 |
公开(公告)号: | CN109947796B | 公开(公告)日: | 2021-04-30 |
发明(设计)人: | 杜金莲;陈子昂;金雪云;苏航;李童 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2455;G06F16/2458;G06F16/28 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 数据库 系统 查询 中间 结果 缓存 方法 | ||
1.一种分布式数据库系统查询中间结果集的缓存方法,其特征在于,包含如下步骤:
步骤1,建立中间结果缓存数据集模型;
中间结果集缓存方法以关系型数据库MySQL返回内容为标准,故取其结构进行缓存;关系型数据库返回结果集包含两部分内容:结果头信息、结果列信息;
中间结果缓存头数据集结构包含头记录id、数据库ip地址、数据库元名称、数据库数据表名称、列原始名称数组、完整原始缓存头,缓存内容id数组;中间结果缓存内容数据集包含行记录id、行数据内容;
依据两个数据实体,建立缓存数据存储机制,将其存入数据库或文档中;
非关系型数据库根据数据库类型不同,其返回结果也各不相同;故对其操作为识别其返回内容格式,并将其内容依照上述格式转化为上述模型的中间结果集数据并进行缓存;
步骤2,建立查询范围的识别机制;
识别机制采用多叉树方法判别在执行查询任务时是否存在可用的中间结果集缓存;多叉树单节点包含高并发下读写锁、当前节点存储where子句、运算符、值、缓存数据库ip、表名、缓存属性数组、缓存过期时间、缓存头id;子节点执行查询任务SQL语句经解析后化为以下二叉树的一条路径;
执行新的SQL语句时,将语句划分为选择条件、表名与查询属性,并将选择条件依照文本顺序进行排序,经过选择条件在二叉树中查找后,满足全条件均与二叉树内某一条路径存储数据相同或范围小于二叉树内标示范围时,若尾节点存在满足与查询执行数据库IP、表名相同,查询属性范围相同或大于当前查询目标属性且缓存未过期,则说明当前缓存可用;若之前存在查询范围不一致情况,则对该缓存结果执行二次查询后,拼接为新的中间结果集包,等待后续中间结果集缓存返回后执行合并操作并返回给客户端;反之直接生成中间结果集包等待后续处理;
步骤3,设置中间结果缓存数据集的失效方式;
在获得子节点返回的中间结果集后,解析结果集内容并进行缓存;计算缓存记录的当前时间与记录生效时长的和,计做失效时间,录入缓存头数据集中;系统通过另外发起定时任务循环遍历缓存结果;当发现数据集中存在失效时间小于当前时间的缓存头数据时,对当前头数据和与该头数据关联的缓存内容数据实行删除操作;同理,识别机制通过另起定时任务方式对其进行遍历并删除过期数据,但识别机制在查找到失效数据时也可执行删除缓存记录操作从而释放空间;识别机制删除操作遵循如下原则:当在执行删除某条缓存记录时,若该缓存记录为当前节点唯一缓存记录,且当前节点不存在任何子节点的情况下,直接对当前节点执行删除,且应判断其父节点是否存在缓存记录;若其父节点不存在缓存记录,则应继续删除父节点并重复检测父节点是否为空操作;
步骤4,实现子查询无网络交互
子查询执行前首先经解析阶段获得其在识别缓存中的目标路径;
依照路径判断该缓存是否存在,同时记录子查询范围小于缓存路径范围条件个数;若存在该路径且该路径存在该子查询所执行的数据库节点与数据表的缓存中间结果集,则缓存命中,若检测查询范围不一致个数大于0,则依次提取列名称与行数据,执行二次查询过滤结果集;若不一致数据为0则直接生成中间结果集包等待全部子查询执行完毕后进行结果合并;
若该路径不存在则缓存未命中,将子查询下发至相应的子节点等待子节点反馈结果包;反馈回的结果包接收后依次分析结果包头、结果行数据信息后,随失效时间一同将其录入中间结果集缓存中;之后依照子查询语句在识别缓存中添加该中间结果集缓存路径并记录缓存失效时间;之后等待全部子查询执行完毕后执行结果合并操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910166410.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:目标数据的获取方法和装置
- 下一篇:一种数据检查装置及方法