[发明专利]单用户多工作负载之间JSON解析优化方法和系统有效
申请号: | 202010110669.1 | 申请日: | 2020-02-23 |
公开(公告)号: | CN111460229B | 公开(公告)日: | 2023-06-09 |
发明(设计)人: | 石宣化;金海;胡振宇;张一鹏;沈欢;熊倩 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F16/835 | 分类号: | G06F16/835;G06N3/0442 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 单用户 工作 负载 之间 json 解析 优化 方法 系统 | ||
1.一种单用户多工作负载之间JSON解析优化方法,其特征在于,该方法包括以下步骤:
S1.基于用户的JSONPath历史访问信息,预测会被该用户重复访问的JSONPath;
S21.根据单位存储空间内能获取的时间收益,对预测的JSONPath进行打分;
其中,步骤S21包括以下子步骤:
S211.使用原解析算法,通过对每个文件分片进行采样,计算JSON字段的平均大小Bj,并计算JSON字段的平均解析时间Pj,用下面公式计算出每字节加速Aj的大小:
S212.计算JSONPath潜在相关性Rj
其中,n表示一条JSONPath被n条查询访问,Mj表示在第j条查询中涉及的被预测的JSONPath出现的次数,Nj表示在第j条查询中所有JSONPath的数量;
S213.计算JSONPath在训练样本日期内出现的次数Oj;
S214.根据Aj、Rj以及Oj,计算第j条JSONPath的分数Scorej,公式如下:
Scorej=Aj*Rj*Oj;
S22.按照JSONPath的分数由高到低,将JSONPath对应的JSON字段进行缓存至分布式文件系统;并记住高速缓存表和原始数据表之间的映射关系;
S3.当用户的查询包含预测的JSONPath时,直接从缓存表中读取对应的JSON字段。
2.如权利要求1所述的方法,其特征在于,步骤S1包括以下子步骤:
S11.从历史数据表中按照用户名称,收集各个用户的所有Workload中访问的JSONPath的历史数据信息;
S12.根据收集的历史数据信息,基于长短期记忆网络和条件随机场,预测会被该用户重复访问的JSONPath。
3.如权利要求2所述的方法,其特征在于,所述历史数据信息包括:JSONPath路径、JSONPath所在的数据库名称、JSONPath所在的原用户表名、JSONPath所在的列名、JSONPath被访问的次数、查询被执行的日期。
4.如权利要求2或3所述的方法,其特征在于,步骤S12包括以下子步骤:
S121.对历史数据信息进行预处理,根据预处理后的历史数据信息构建训练样本,所述训练样本为:JSONPath路径、数据库名称、原用户表名、列名、JSONPath所在的查询被执行的日期与当前训练日期的时间差、JSONPath在查询被执行的日期中出现的次数;
S122.将训练样本集输入给LSTM和CRF,输出各个用户可能会被缓存的JSONPath序列。
5.如权利要求1所述的方法,其特征在于,在存储空间有限的情况下,分数高的JSONPath被优先缓存,直到缓存空间用尽为止;当存储空间用尽时,当天的缓存结束;在下一天的凌晨开始,缓存空间将被清理,重新按照前述逻辑缓存新的JSONPath对应的JSON字段值。
6.如权利要求1所述的方法,其特征在于,将缓存命中的JSONPath对应的字段值替换成对缓存表的引用,余下的未被缓存的值存放于用户原始数据表中;所述用户原始数据表和缓存表分区对齐。
7.如权利要求6所述的方法,其特征在于,被缓存命中的JSONPath从缓存表中读取值,其他未被命中的以及非JSON列则从原始数据表中读取,合并从原始数据表和缓存表读取的值。
8.一种单用户多工作负载之间JSON解析优化系统,其特征在于,该系统包括:
JSONPath预测器,用于基于用户的JSONPath历史访问信息,预测会被该用户重复访问的JSONPath;
JSONPath缓存器,用于使用原解析算法,通过对每个文件分片进行采样,计算JSON字段的平均大小Bj,并计算JSON字段的平均解析时间Pj,用下面公式计算出每字节加速Aj的大小:
计算JSONPath潜在相关性Rj
其中,n表示一条JSONPath被n条查询访问,Mj表示在第j条查询中涉及的被预测的JSONPath出现的次数,Nj表示在第j条查询中所有JSONPath的数量;
计算JSONPath在训练样本日期内出现的次数Oj;
根据Aj、Rj以及Oj,计算第j条JSONPath的分数Scorej,公式如下:
Scorej=Aj*Rj*Oj;
按照JSONPath的分数由高到低,将JSONPath对应的JSON字段进行缓存至分布式文件系统;并记住高速缓存表和原始数据表之间的映射关系;
查询处理器,用于当用户的查询包含预测的JSONPath时,直接从缓存表中读取对应的JSON字段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010110669.1/1.html,转载请声明来源钻瓜专利网。