图数据库缓存方法、装置、电子设备和可读存储介质制造方法及图纸

技术编号:34432118 阅读:11 留言:0更新日期:2022-08-06 16:10
本发明专利技术公开了一种图数据库缓存方法、装置、电子设备和可读存储介质,其中,所述方法包括:获取多个采样得到的采样点对象和采样边对象;获取每一所述采样点对象和所述采样边对象的内存空间占用;计算所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占用;基于所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占用以及缓存空间的大小,确定所述缓存空间中可容纳的最大点对象数目和最大边对象数目;基于所述最大点对象数目和所述最大边对象数目进行缓存。本发明专利技术提供的技术方案,能够提高缓存空间的利用率,进而提高后续数据访问的效率。进而提高后续数据访问的效率。进而提高后续数据访问的效率。

【技术实现步骤摘要】
图数据库缓存方法、装置、电子设备和可读存储介质


[0001]本专利技术涉及数据处理
,具体涉及一种图数据库缓存方法、装置、电子设备和可读存储介质。

技术介绍

[0002]随着互联网、移动互联网、社交网络、物联网及工业领域关联型网络如电力网络的爆炸式发展,关系图的存储以及基于关系图的网络拓扑结构分析与功能分析等应用有着极大的需求,同时也促成了图数据库的研发热潮。
[0003]传统的关系型数据库在面对联机事务处理(On

Line Transaction Processing,OLTP)需求能够实时稳定应对,例如在线商城的用户购买行为记录,系统会在购买行为发生后,记录是谁在什么时候、在哪家店铺买了什么,这样的行为数据会以增删改的方式在关系型数据库中进行数据的更新处理操作。而当在线商城主体想基于有相同或者类似购买习惯的用户的历史购买数据给别的用户进行商品推荐,或者预测某类用户是否会购买某类商品,诸如此类的基于关系图的联机分析处理(On

Line Analytical Processing,OLAP)数据分析需求时,传统关系型数据库则面临着模式(Schema)复杂、计算时间与空间不经济、响应时延较长等困境。在传统关系型数据库中,表征实体之间的关系需要创建关联表。当连边关系巨量、查询的实体关系较深时,在建模阶段通过关键字构建关联表所耗费的时间并不能加快实体之间的关系查询,而这恰好是图数据库的优势所在。
[0004]为了对海量的图网络数据进行快速查询、分析,提升大规模图数据查询和分析的性能,基于磁盘的图数据库需要引入图数据逻辑对象(即点、边对象)对于磁盘数据在内存中的缓存,以加速对象数据的获取、操作过程并减少磁盘读写请求,以避免磁盘IO对数据访问能力的限制。对于缓存来说,缓存空间的管理、缓存算法(或称缓存替换算法、缓存淘汰算法)、缓存加载至关重要。
[0005]常见的基于对象的缓存管理大多基于固定数目的对象缓存,这种缓存管理实现起来简单直接,效率较高,但对于可变大小的内存对象缓存有可能会带来缓存空间的动态波动,无法很好地进行物理缓存空间的有效利用。

技术实现思路

[0006]有鉴于此,本专利技术实施例提供了一种图数据库缓存方法、装置、电子设备和可读存储介质,以解决缓存空间利用率低的问题。
[0007]根据第一方面,本专利技术实施例提供了一种图数据库缓存方法,所述方法包括:获取多个采样得到的采样点对象和采样边对象;获取每一所述采样点对象和所述采样边对象的内存空间占用;计算所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占用;基于所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占
用以及缓存空间的大小,确定所述缓存空间中可容纳的最大点对象数目和最大边对象数目;基于所述最大点对象数目和所述最大边对象数目进行缓存。
[0008]可选的,所述获取每一所述采样点对象和所述采样边对象的内存空间占用,包括:针对每一采样对象,获取以下至少之一项的内存空间占用,并合计得到所述采样对象的内存空间占用:所采样对象在内存中对象的头部分;所述采样对象在内存中的标识;所述采样对象的引用;所述采样对象的对齐空间;所述采样对象的属性;其中,所述采样对象包括所述采样点对象和所述采样边对象。
[0009]可选的,所述基于所述最大点对象数目和所述最大边对象数目进行缓存,包括:选取度数最大的第一点对象;获取所述第一点对象的边对象、所述第一点对象的N层邻居节点以及所述N层邻居节点的边对象,并进行缓存,N为正整数;判断已经缓存的点对象、边对象是否达到所述最大点对象数目、所述最大边对象数目;若尚未达到,则获取第二点对象、所述第二点对象的边对象、所述第二点对象的M层邻居节点以及所述M层邻居节点的边对象,并进行缓存;其中,M为正整数,所述第二点对象为尚未缓存的点对象中度数最大的点对象或者除所述第一点对象外的全部点对象中度数最大的点对象。
[0010]可选的,所述基于所述最大点对象数目和所述最大边对象数目进行缓存之前,还包括:在点对象和/或边对象发生变更时,根据变更所涉及的点对象在变更后的度数调整变更所涉及的点对象的度数索引;其中,所述变更包括加入、修改和删除。
[0011]可选的,所述基于所述最大点对象数目和所述最大边对象数目进行缓存之后,还包括以下至少之一:每次读、写操作所针对的第一数据对象若未缓存,则对读、写操作后的所述第一数据对象进行缓存;若读、写操作所针对的第二数据对象不存在,则在缓存空间进行标识以指示所述第二数据对象不存在;其中,所述第一数据对象和所述第二数据对象包括点对象、边对象。
[0012]可选的,点对象和边对象分别对应一个热数据缓存序列和一个冷数据缓存序列;所述方法还包括以下至少之一:对于刚缓存的点对象或边对象,加入对应的所述冷数据缓存序列;对于所述冷数据缓存序列中的点对象或边对象,若被访问,则移入对应的所述热数据缓存序列;
所述热数据缓存序列中的点对象或边对象按照第一预设规则出列后,移入对应的所述冷数据缓存序列;所述冷数据缓存序列中的点对象或边对象按照第二预设规则出列后,移出缓存;对于所述冷数据缓存序列中的点对象,若存在处于所述热数据缓存序列的邻接边对象,则在对应的所述冷数据缓存序列中前移位置;对于所述冷数据缓存序列中的边对象,若存在处于所述热数据缓存序列的邻接点对象,则在对应的所述冷数据缓存序列中前移位置。
[0013]可选的,所述第一预设规则和所述第二预设规则为最近最少使用。
[0014]根据第二方面,本专利技术实施例提供了一种图数据库缓存装置,包括:采样模块,用于获取多个采样得到的采样点对象和采样边对象;第一计算模块,用于获取每一所述采样点对象和所述采样边对象的内存空间占用;第二计算模块,用于计算所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占用;确定模块,用于基于所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占用以及缓存空间的大小,确定所述缓存空间中可容纳的最大点对象数目和最大边对象数目;缓存模块,用于基于所述最大点对象数目和所述最大边对象数目进行缓存。
[0015]根据第三方面,本专利技术实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述第一方面所述的任一种图数据库缓存方法。
[0016]根据第四方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述第一方面所述的任一种图数据库缓存方法。
[0017]本专利技术实施例中,对图数据库中的点、边数据进行采样,对采样所得的点、边对象在内存中的存储空间(以字节为单位)进行计算获取其实际的内存空间,然后根据采样对象的内存空间占用可估算出整体图的点、边对象所需的平均内存空间占用。从而提供了可量化的图数据库点、边数据缓存空间大小管理机制,也即以量本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图数据库缓存方法,其特征在于,所述方法包括:获取多个采样得到的采样点对象和采样边对象;获取每一所述采样点对象和所述采样边对象的内存空间占用;计算所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占用;基于所述采样点对象的平均内存空间占用和所述采样边对象的平均内存空间占用以及缓存空间的大小,确定所述缓存空间中可容纳的最大点对象数目和最大边对象数目;基于所述最大点对象数目和所述最大边对象数目进行缓存。2.根据权利要求1所述的方法,其特征在于,所述获取每一所述采样点对象和所述采样边对象的内存空间占用,包括:针对每一采样对象,获取以下至少之一项的内存空间占用,并合计得到所述采样对象的内存空间占用:所采样对象在内存中对象的头部分;所述采样对象在内存中的标识;所述采样对象的引用;所述采样对象的对齐空间;所述采样对象的属性;其中,所述采样对象包括所述采样点对象和所述采样边对象。3.根据权利要求1所述的方法,其特征在于,所述基于所述最大点对象数目和所述最大边对象数目进行缓存,包括:选取度数最大的第一点对象;获取所述第一点对象的边对象、所述第一点对象的N层邻居节点以及所述N层邻居节点的边对象,并进行缓存,N为正整数;判断已经缓存的点对象、边对象是否达到所述最大点对象数目、所述最大边对象数目;若尚未达到,则获取第二点对象、所述第二点对象的边对象、所述第二点对象的M层邻居节点以及所述M层邻居节点的边对象,并进行缓存;其中,M为正整数,所述第二点对象为尚未缓存的点对象中度数最大的点对象或者除所述第一点对象外的全部点对象中度数最大的点对象。4.根据权利要求3所述的方法,其特征在于,所述基于所述最大点对象数目和所述最大边对象数目进行缓存之前,还包括:在点对象和/或边对象发生变更时,根据变更所涉及的点对象在变更后的度数调整变更所涉及的点对象的度数索引;其中,所述变更包括加入、修改和删除。5.根据权利要求1所述的方法,其特征在于,所述基于所述最大点对象数目和所述最大边对象数目进行缓存之后,还包括以下至少之一:每次读、写操作所针对的第一数据对象若未缓存,则对读、写操作后的所述第一数据对象...

【专利技术属性】
技术研发人员:高昆仑陈国宝赵保华乔贵邠张亮周飞林剑超
申请(专利权)人:方图数据北京软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1