[发明专利]基于分层计数的datalog并行增量维持方法有效
申请号: | 201910027398.0 | 申请日: | 2019-01-11 |
公开(公告)号: | CN109885579B | 公开(公告)日: | 2023-06-06 |
发明(设计)人: | 秦小麟;项哲慧;高雅 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F16/23 | 分类号: | G06F16/23 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 曹芸 |
地址: | 210017 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 分层 计数 datalog 并行 增量 维持 方法 | ||
1.一种基于分层计数的datalog并行增量维持方法,其特征在于,包括如下步骤:
步骤一、在实例化内延数据库的过程中,依据计算过程的迭代次数动态构建相应层次的计数结构,计数迭代过程中推导出来的内延数据,在相应层次的计数结构中记录;每次更新启动一条线程处理,线程逐层计算构建的计数结构,每层计数结构每次只能由一个线程处理,多层结构被多个线程同时处理;
步骤二、计算各层计数结构时,根据外部数据Add_i,Del_i对结构内部数据olds和news数据集进行增减调整,并依据具体数据状态对olds和news数据集进行分割;在计数结构内添加add和删除del数据,并且对计数结构内的olds和news部分分别进行数据判别和迁移,完成对计数结构的更新维护操作;
步骤三、计算各层计数结构时,对news数据集增量进行推导;依据半朴实算法,对分割后的news数据集的增量部分进行推导,并对将推导结果作为下层计数结构的增量数据;
步骤四、多线程访问多版本数据库时,构建多版本的数据库结构和访问多版本数据库的方式,设计了一种带状态序列的外延数据库,代替数据的直接拷贝。
2.根据权利要求1所述的基于分层计数的datalog并行增量维持方法,其特征在于步骤一中所述动态构建分层计数结构以及多层结构被多个线程同时处理的过程,包括如下过程:
当外延数据库更新时,启动一个线程对计数结构逐层进行处理;每个层次的计数结构都有一个互斥锁,当线程需要处理该计数结构时,需先获取该结构的锁,在线程释放当前计数结构的锁之前,线程须先获取下一层技术结构的锁。
3.根据权利要求1所述的基于分层计数的datalog并行增量维持方法,其特征在于步骤二中所述计算各层计数结构时,根据外部数据Add_i,Del_i对结构内部数据olds和news数据集进行增减调整,并依据具体数据状态对olds和news数据集进行分割,包括如下过程:
(1)Add_i到News或者Olds:从内延数据库中获取Add_i中的数据d的状态S(d),如果S(d)i,则尝试更新d的状态,使得S(d)=i,如果更新成功,则将数据d加入News中,如果更新失败则继续尝试,直到更新成功,或者直到条件S(d)i不再满足,如果情况是后者,则返回更新失败,数据d放入Olds;在这个过程中加入News的数据需要缓存下来作后续推导处理;
(2)Del_i到News或者Olds:Del_i中的数据d如果属于News,则从News中删除d,如果属于Olds,则从Olds中删除d;如果在News中删除d之后,不再存在数据d,需要缓存作后续推导处理;
(3)News到Olds:对News中的数据d判断,从内延数据库中获取d的状态S(d),如果S(d)i,则表示经过之前更新操作的处理,数据d在第i次迭代之前推导得到,此时,数据d不再是第i次迭代首次推导出的数据,它需要被移到Olds中,并缓存作后续推导处理;
(4)Olds到News:对Olds中的数据d判断,从内延数据库中获取d的状态S(d),如果S(d)i,则表示经过之前的更新操作,在第i次迭代之前的某次操作中推导得到的数据d存在因删除操作,不能推导得到的情况,此时第i次迭代得到的数据d成为d的首次推导,因此数据d需要从Olds移到News,并缓存作后续推导处理。
4.根据权利要求1所述的基于分层计数的datalog并行增量维持方法,其特征在于步骤三中所述计算各层计数结构时,对news数据集增量进行推导;依据半朴实算法,对分割后的news数据集的增量部分进行推导的具体过程如下:
对News中删除的数据和新增的数据,这些差量数据经过datalog规则推导的结果会分别放入Del_i+1,Add_i+1;其中News中新增的数据来自于Add_i和Olds,Del_i和News到Olds的迁移的数据为News中的删除数据;线程需要携带Add_i+1和Del_i+1进入i+1层计数结构,用Add_i+1和Del_i+1对i+1层技术结构中的News和Olds进行增减处理;如果下层计数结构还未构建,需要先构建一个空的计数结构,再进入处理数据。
5.根据权利要求1所述的基于分层计数的datalog并行增量维持方法,其特征在于步骤四中构造多版本的外延数据库和访问多版本数据库的方式,包括如下过程:
通过用状态序列替代数据的拷贝,在logN的时间复杂度确定数据d在T时刻是否存在,其中N为数据d的状态序列大小;通过二分查找小于等于T时刻的状态,如果该状态的U(d)为真,则数据d存在,否则数据不存在;每个数据状态序列的大小远远小于总的更新次数,并且随着更新的累积,仅保留未处理时刻的状态,但每个数据必须至少保留一个状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910027398.0/1.html,转载请声明来源钻瓜专利网。