[发明专利]动态图更新方法、装置、存储引擎接口和程序介质有效
申请号: | 201810444351.X | 申请日: | 2018-05-10 |
公开(公告)号: | CN108595251B | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 于飏 | 申请(专利权)人: | 腾讯科技(深圳)有限公司;腾讯云计算(北京)有限责任公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 深圳市联鼎知识产权代理有限公司 44232 | 代理人: | 刘抗美 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 更新 方法 装置 存储 引擎 接口 程序 介质 | ||
1.一种动态图更新方法,其特征在于,采用多线程来更新存储的动态图,包括:
将动态图的图元素分成多个组,各个组之间的图元素各不相同且互相独立;
为每个组分别设置一个事务队列;
将针对每个组中的图元素的事务放在该组的事务队列中排队,每个事务队列中的事务按照排队的顺序进行图元素操作;
响应于非并行性事务对图元素进行操作,将图元素所属的组锁住,禁止其它组的事务队列中的事务进行图元素操作,所述非并行性事务是不能与其它事务同时针对同一个组的图元素执行的事务;
所述将针对每个组中的图元素的事务放在该组的事务队列中排队包括:
获取针对图元素的事务,所述事务带有请求时间戳;
确定所述事务针对的图元素所属的组;
按照所述请求时间戳的先后顺序,将所述事务放在确定的组的事务队列中排队;
所述方法还包括:
在执行事务的图元素操作后,记录操作时间;
每隔预定时间段,确定每个图元素在该预定时间段的处理负载,该处理负载等于该预定时间段内该图元素的记录的操作时间之和,
由机器学习模型根据之前每个预定时间段每个图元素的处理负载,对接下来的预定时间段各图元素的处理负载进行预测;
所述确定所述事务针对的图元素所属的组,包括:
如果所述事务是关于增加图元素的事务,将所述图元素确定到预测处理负载最小的组内。
2.根据权利要求1所述的方法,其特征在于,在将图元素所属的组锁住后,所述方法还包括:
响应于该非并行性事务对图元素操作完,解锁所述图元素所属的组。
3.根据权利要求1所述的方法,其特征在于,所述将图元素所属的组锁住包括:
如果该非并行性事务对多个组的图元素进行操作,按所述多个组的预定顺序锁住所述多个组。
4.根据权利要求1所述的方法,其特征在于,所述图元素包括顶点和边,所述非并行性事务包括去除顶点、增加边中的至少一个。
5.根据权利要求1所述的方法,其特征在于,所述按照所述请求时间戳的先后顺序,将所述事务放在确定的组的事务队列中排队,具体包括:
如果所属组相同的多个事务的请求时间戳相同,将更新事务排在查询事务的前面。
6.根据权利要求1所述的方法,其特征在于,所述按照所述请求时间戳的先后顺序,将所述事务放在确定的组的事务队列中排队,具体包括:
如果所属组相同的多个事务的请求时间戳相同、又都是更新事务,只将所述多个事务中的一个放在事务队列中排队,向所述多个事务中的其它事务的请求终端发出重请求指示。
7.根据权利要求1所述的方法,其特征在于,所述组包括与组中的图元素对应的最近更新时间戳,在响应于非并行性事务对图元素进行操作,将图元素所属的组锁住之后,所述方法还包括:
将事务的请求时间戳与所述最近更新时间戳进行比较;
如果事务的请求时间戳晚于所述最近更新时间戳,才执行事务的图元素操作,并用事务的请求时间戳更新所述最近更新时间戳。
8.根据权利要求1所述的方法,其特征在于,所述确定所述事务针对的图元素所属的组,包括:
如果所述事务是关于增加图元素的事务,将所述图元素确定到当前事务队列最短的组中。
9.根据权利要求1所述的方法,其特征在于,所述将动态图的图元素分成多个组,包括:
按照所述图元素的邻接关系,将动态图的图元素分成多个组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司;腾讯云计算(北京)有限责任公司,未经腾讯科技(深圳)有限公司;腾讯云计算(北京)有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810444351.X/1.html,转载请声明来源钻瓜专利网。