一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图数据加载方法及装置与流程

2021-11-25 02:33:00 来源:中国专利 TAG:


1.本说明书实施例通常涉及图数据处理领域,尤其涉及图数据加载方法及装置。


背景技术:

2.随着图数据的规模越来越大,将图数据存储在位于图数据处理设备外部的数据存储介质或数据存储系统中成为图数据存储的一种趋势。在进行图数据处理时,需要将图数据从外部数据存储介质或数据存储系统加载到图数据处理设备的本地内存中,以供图数据处理设备后期处理。
3.在大规模图数据的情况下,图数据加载通常并发执行。在并发图数据加载过程中会发生锁竞争,锁竞争会大大影响图数据加载的并发效率。


技术实现要素:

4.鉴于上述,本说明书实施例提供图数据加载方法及装置。利用该图数据加载方法及装置,可以减少图数据加载过程中的锁持有时间,从而减少并发加载过程中的锁竞争,由此提升图数据加载的并发效率。
5.根据本说明书实施例的一个方面,提供一种图数据加载方法,包括:响应于从外部获取到待加载图数据,为所述待加载图数据获取锁;基于图数据加载装置中存储的前一加载图数据的图数据加载标识,确定所述待加载图数据的图数据加载标识;释放为所述待加载图数据获取的锁;以及在完成锁释放后,将所述待加载图数据保存到图数据处理设备的本地内存中所创建的图数据存储空间中的对应存储位置,所述对应存储位置基于所述待加载图数据的图数据加载标识确定出。
6.可选地,在上述方面的一个示例中,将所述待加载图数据保存到图数据处理设备的本地内存中所创建的图数据存储空间中的对应存储位置可以包括:将所述待加载图数据的数据标识和数据属性保存到所述图数据存储空间中的对应存储位置,或者将所述待加载图数据的数据属性保存到所述图数据存储空间中的对应存储位置。
7.可选地,在上述方面的一个示例中,所述存储位置确定过程在所述锁释放过程之前执行或者在所述锁释放过程之后执行。
8.可选地,在上述方面的一个示例中,所述图数据存储空间包括多个用于存储图数据的内存块,每个内存块具有固定数目个存储位置,所述图数据处理设备的本地内存中维护首地址队列,所述首地址队列用于根据创建时间顺序依序存储各个内存块的首地址。相应地,基于所述待加载图数据的图数据加载标识,确定所述待加载图数据在图数据处理设备的本地内存中所创建的图数据存储空间中的存储位置可以包括:基于所述图数据加载标识,确定所述待加载图数据在所述图数据存储空间中的存储位置索引,所述存储位置索引包括内存块的内存块索引以及内存块中的偏移量;基于所述内存块索引从所述首地址队列中获取内存块的首地址;以及根据所获取的内存块的首地址以及所述偏移量,确定所述待加载图数据在所述图数据存储空间中的存储位置。
9.可选地,在上述方面的一个示例中,将所述待加载图数据保存到所述图数据存储空间中的对应存储位置可以包括:判断所述待加载图数据的数据大小是否超过所述图数据存储空间中的对应存储位置的存储大小;在所述待加载图数据的数据大小不超过所述图数据存储空间中的对应存储位置的存储大小时,将所述待加载图数据保存到所述图数据存储空间中的对应存储位置,在所述待加载图数据的数据大小超过所述图数据存储空间中的对应存储位置的存储大小时,从图数据处理设备的本地内存的空闲内存中为所述待加载图数据申请内存空间,将所述待加载图数据保存到所申请的内存空间,并且将所申请内存空间的空间地址保存到所述图数据存储空间中的对应存储位置。
10.可选地,在上述方面的一个示例中,将所述待加载图数据保存到所述图数据存储空间中的对应存储位置可以包括:判断所述待加载图数据的数据属性的数据类型是否包含可变类型;在所述待加载图数据的数据属性的数据类型不包含可变类型时,将所述待加载图数据保存到所述图数据存储空间中的对应存储位置,在所述待加载图数据的数据属性的数据类型包含可变类型时,从图数据处理设备的本地内存的空闲内存中为所述待加载图数据申请内存空间,将所述待加载图数据保存到所申请的内存空间,并且将所申请内存空间的空间地址保存到所述图数据存储空间中的对应存储位置。
11.可选地,在上述方面的一个示例中,所述图数据加载装置中维护用于记录图数据的数据标识与图数据加载标识之间的映射关系的映射表。所述图数据加载方法还可以包括:在得到所述待加载图数据的图数据加载标识后,将所得到的图数据加载标识与所述待加载图数据的数据标识之间的映射关系记录到所述映射表中。
12.根据本说明书的实施例的另一方面,提供一种图数据加载装置,包括:锁获取单元,响应于从外部获取到待加载图数据,为所述待加载图数据获取锁;标识确定单元,基于图数据加载装置中存储的前一加载图数据的图数据加载标识,确定所述待加载图数据的图数据加载标识;锁释放单元,释放为所述待加载图数据获取的锁;存储位置确定单元,基于所述待加载图数据的图数据加载标识,确定所述待加载图数据在图数据处理设备的本地内存中所创建的图数据存储空间中的存储位置;以及图数据保存单元,在完成锁释放后,将所述待加载图数据保存到所述图数据存储空间中的对应存储位置。
13.可选地,在上述方面的一个示例中,所述图数据保存单元将所述待加载图数据的数据标识和数据属性加载到所述图数据存储空间中的对应存储位置,或者将所述待加载图数据的数据属性加载到所述图数据存储空间中的对应存储位置。
14.可选地,在上述方面的一个示例中,所述图数据存储空间包括多个用于存储图数据的内存块,每个内存块具有固定数目个存储位置,所述图数据处理设备的本地内存中维护首地址队列,所述首地址队列用于根据创建时间顺序依序存储各个内存块的首地址。相应地,所述存储位置确定单元可以包括:存储位置索引确定模块,基于所述待加载图数据的图数据加载标识,确定所述待加载图数据在所述图数据存储空间中的存储位置索引,所述存储位置索引包括内存块的内存块索引以及内存块中的偏移量;首地址获取模块,基于所述内存块索引从所述首地址队列中获取所在内存块的首地址;以及存储位置确定模块,根据所获取的内存块的首地址以及所述偏移量,确定所述待加载图数据在所述图数据存储空间中的存储位置。
15.可选地,在上述方面的一个示例中,所述图数据保存单元可以包括:判断模块,判
断所述待加载图数据的数据大小是否超过所述图数据存储空间中的对应存储位置的存储大小;内存空间申请模块,在所述待加载图数据的数据大小超过所述图数据存储空间中的对应存储位置的存储大小时,从图数据处理设备的本地内存的空闲内存中为所述待加载图数据申请内存空间;以及图数据保存模块,在所述待加载图数据的数据大小不超过所述图数据存储空间中的对应存储位置的存储大小时,将所述待加载图数据保存到所述图数据存储空间中的对应存储位置处;以及在所述待加载图数据的数据大小超过所述图数据存储空间中的对应存储位置的存储大小时,将所述待加载图数据保存到所申请的内存空间;以及存储地址保存模块,在所述待加载图数据的数据大小超过所述对应存储位置的存储大小时,将所申请内存空间的空间地址保存到所述图数据存储空间中的对应存储位置。
16.可选地,在上述方面的一个示例中,所述图数据保存单元可以包括:判断模块,判断所述待加载图数据的数据属性的数据类型是否包含可变类型;内存空间申请模块,在所述待加载图数据的数据属性的数据类型包含可变类型时,从图数据处理设备的本地内存的空闲内存中为所述待加载图数据申请内存空间;图数据保存模块,在所述待加载图数据的数据属性的数据类型不包含可变类型时,将所述待加载图数据保存到所述图数据存储空间中的对应存储位置;以及在所述待加载图数据的数据属性的数据类型包含可变类型时,将所述待加载图数据保存到所申请的内存空间;以及存储地址保存模块,在所述待加载图数据的数据属性的数据类型包含可变类型时,将所申请内存空间的空间地址保存到所述图数据存储空间中的对应存储位置。
17.可选地,在上述方面的一个示例中,所述图数据加载装置中维护用于记录图数据的数据标识与图数据加载标识之间的映射关系的映射表。相应地,所述图数据加载装置还可以包括:映射关系记录单元,在得到所述待加载图数据的图数据加载标识后,将所得到的图数据加载标识与所述待加载图数据的数据标识之间的映射关系记录到所述映射表中。
18.根据本说明书的实施例的另一方面,提供一种图数据加载装置,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上所述的图数据加载方法。
19.根据本说明书的实施例的另一方面,提供一种计算机可读存储介质,其存储有可执行指令,所述指令当被执行时使得处理器执行如上所述的图数据加载方法。
20.根据本说明书的实施例的另一方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行来实现如上所述的图数据加载方法。
附图说明
21.通过参照下面的附图,可以实现对于本说明书内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
22.图1示出了根据本说明书的实施例的图数据加载环境的示例架构图。
23.图2示出了现有图数据加载方法的示例流程图。
24.图3示出了根据本说明书的实施例的图数据加载方法的示例流程图。
25.图4示出了根据本说明书的实施例的用于记录图数据的数据标识与图数据加载标识之间的映射关系的映射表的示例示意图。
26.图5a和图5b示出了根据本说明书的实施例的图数据处理设备的本地内存中的图
数据存储空间的示例示意图。
27.图6示出了根据本说明书的实施例的待加载图数据在图数据存储空间中的存储位置的确定过程的示例流程图。
28.图7示出了根据本说明书的实施例的用于将待加载图数据保存到图数据存储空间中的对应存储位置处的数据保存过程的示例流程图。
29.图8示出了根据本说明书的实施例的用于将待加载图数据保存到图数据存储空间中的对应存储位置处的数据保存过程的另一示例流程图。
30.图9示出了根据本说明书的实施例的图数据获取方法的示例流程图。
31.图10示出了根据本说明书的实施例的图数据加载装置的示例方框图。
32.图11示出了根据本说明书的实施例的存储位置确定单元的示例方框图。
33.图12示出了根据本说明书的实施例的图数据保存单元的示例方框图。
34.图13示出了根据本说明书的实施例的图数据保存单元的另一示例方框图。
35.图14示出了根据本说明书的实施例的图数据获取装置的示例方框图。
36.图15示出了根据本说明书的实施例的基于计算机系统实现的图数据加载装置的示例示意图。
37.图16示出了根据本说明书的实施例的基于计算机系统实现的图数据获取装置的示例示意图。
具体实施方式
38.现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
39.如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
40.在本说明书中,术语“图数据加载”是指将图数据从外部图数据存储设备(例如,网络或外部存储介质)加载到图数据处理设备(例如,图计算引擎设备)的本地内存中,以供图数据处理设备使用来进行相应的图数据处理,比如,图计算引擎设备使用所加载的图数据进行图计算。
41.图1示出了根据本说明书的实施例的图数据加载环境100的示例架构图。如图1所示,图数据加载环境100包括网络110、外部存储介质120、图数据加载装置130和图数据处理设备的本地内存140。
42.图数据处理设备进行图数据处理时所使用的图数据存储在网络110或外部存储介
质120中。图数据加载装置130从网络110或外部存储介质120获取待加载图数据,并且将待加载图数据加载到图数据处理设备的本地内存140中,以供图数据处理设备后续处理。在图1的示例中,图数据加载装置130作为图数据处理设备的组件包含在图数据处理设备中,例如,图数据加载装置130可以被实现为图数据处理设备中的图数据加载线程。在其它示例中,图数据加载130也可以位于图数据处理设备之外。
43.图2示出了现有图数据加载方法200的示例流程图。
44.如图2所示,在210,图数据加载装置130从外部获取一条待加载图数据。例如,从网络110或者外部存储介质120获取一条待加载图数据。所获取的图数据可以包括数据标识和数据属性。
45.在本说明书中,图数据例如可以包括顶点数据和/或边数据。顶点数据例如可以包括顶点标识和顶点属性。在一个示例中,顶点标识可以包括顶点id和顶点类型。在另一示例中,顶点标识可以包括顶点id。顶点标识用于唯一标识图数据中的顶点。边数据可以包括边标识和边属性。边标识可以包括起点id、边类型、边时间戳和终点id。顶点标识、边标识、顶点属性和边属性可以与业务相关。比如,对于社交网络场景,顶点id可以是人的身份证号码或者人员编号等。顶点类型可以是顶点所属分类,例如,顶点分类为用户类顶点。顶点属性可以包括年龄、学历、住址、职业等。边类型用于表示边所属类型,例如,在顶点a和b之间创建一条转账边,则该转账边的边类型可以为“转账”。边属性可以包括顶点与顶点之间所形成边的属性。例如,在上述转账边中,边属性可以包括“金额”、“货币”、“操作设备”等。术语“顶点”也可以称为图节点。
46.在220,响应于获取到待加载图数据,为该待加载图数据获取锁。在一个示例中,可以在图数据加载装置中预先创建锁,以供图数据加载装置使用来进行图数据加载。响应于获取到待加载图数据,从图数据加载装置中为该待加载图数据获取锁。在另一示例中,图数据加载装置可以利用图数据处理设备的图数据加载线程实现。在这种情况下,可以在图数据处理设备的本地内存中预先创建锁,以供图数据处理设备中的多个并发图数据加载线程竞争使用来进行图数据加载。响应于获取到待加载图数据,图数据加载线程从图数据处理设备的本地内存中为该待加载图数据获取锁来进行图数据加载。通过锁机制,并发执行的多个图数据加载线程需要竞争锁的使用权来执行对应的图数据加载,从而能够保证在多核多线程环境中,在某个时间点上只能存在一个线程进入临界区代码,从而保证临界区中操作数据的一致性。
47.在230,在获取到锁后,在加锁状态下,将该条图数据的数据标识和数据属性保存到图数据处理设备的本地内存140。
48.在240,响应于该条图数据的数据和数据属性被加载到图数据处理设备的本地内存14中,释放为该条图数据获取的锁,由此完成图数据加载过程。
49.按照上述图数据加载方式,在将图数据的数据标识和数据属性保存到图数据处理设备的内存时,需要持有所获取的锁,由于数据标识和数据属性的保存需要占用较长时间,从而导致单条图数据的锁持有时间较长。在大规模图数据的情况下,图数据加载通常需要并发执行。在并发加载时,如果单条图数据的锁持有时间较长,则容易发生由于锁竞争而导致其它图数据加载等待较长时间,从而影响图数据并发加载效率。
50.鉴于此,本说明书的实施例提供一种图数据加载方法及装置。在该图数据加载方
法中,在图数据加载装置中维护待加载图数据的图数据加载标识,在获取到新的待加载图数据后,在加锁情况下,递增前一待加载图数据的图数据加载标识来得到当前待加载图数据的图数据加载标识。然后,基于所得到的图数据加载标识确定出该当前待加载图数据在本地内存的图数据存储空间中的存储位置,并且在锁释放情况下,将当前待加载图数据保存到所确定出的图数据存储空间中的存储位置。在该图数据加载方法中,图数据保存过程在锁释放的情况下执行,从而可以减少单条图数据的图数据加载过程中的锁持有时间,由此提升图数据加载的并发效率。
51.下面将参照附图描述根据本说明书的实施例的图数据加载方法、图数据加载装置、图数据获取方法及图数据获取装置。
52.图3示出了根据本说明书的实施例的图数据加载方法300的示例流程图。图数据加载方法300由图数据加载装置执行。
53.如图3所示,在310,响应于从外部获取到当前待加载图数据,图数据加载装置为所获取的待加载图数据获取锁。当前待加载图数据可以是来自网络或者外部存储介质的图数据。
54.在一个示例中,可以在图数据加载装置中预先创建锁,以供图数据加载装置使用来进行图数据加载。响应于获取到待加载图数据,从图数据加载装置中为该待加载图数据获取锁。在另一示例中,图数据加载装置例如可以被实现为图数据处理设备的图数据加载线程。在这种情况下,可以在图数据处理设备的本地内存中预先创建锁,以供图数据处理设备中的多个图数据加载线程并发使用来进行图数据加载。响应于获取到待加载图数据,图数据加载线程从图数据处理设备的本地内存中为该待加载图数据获取锁来进行图数据加载。
55.在320,基于图数据加载装置中存储的前一加载图数据的图数据加载标识,确定当前待加载图数据的图数据加载标识。
56.在一个示例中,图数据加载标识可以利用图数据的加载序号表示。在这种情况下,通过将前一加载图数据的图数据加载标识递增1,得到当前待加载图数据的图数据加载标识。例如,假设图数据a是第一个加载的图数据,则图数据a的图数据加载标识为1。图数据b是第二个加载的图数据,则图数据b的图数据加载标识为2。假设图数据m的图数据加载标识为k,则紧接图数据m之后加载的图数据的图数据加载标识为k 1。
57.在另一示例中,待加载图数据的图数据加载标识可以使用图数据的数据大小(数据长度)表示。在这种情况下,第一个加载图数据的图数据加载标识可以被表示为该图数据的数据大小。比如,假设该图数据的数据大小为32k,则其图数据加载标识可以为32。第二个加载图数据的图数据加载标识可以将其图数据大小与第一个加载图数据的图数据加载标识之和作为第二个加载图数据的图数据加载标识。例如,假设第二个加载图数据的数据大小也为32k,则第二个加载图数据的图数据加载标识为64。后续待加载图数据的图数据加载标识如此类推确定出。
58.所确定出的图数据加载标识可以存储在图数据加载装置中。例如,在一个示例中,可以仅仅将当前图数据加载标识存储在图数据加载装置的本地内存中的特定位置,即,利用图数据加载装置的本地内存中的特定字段存储每次图数据加载处理时得到的图数据加载标识,以供后续图数据加载过程使用。在另一示例中,可以在图数据加载装置中维护图数
据加载标识队列。每个图数据加载过程中得到的当前图数据加载标识依序存储在图数据加载标识队列中,即,每次得到的当前图数据加载标识存储在图数据加载标识队列的队尾。在另一示例中,可以在图数据加载装置中维护用于记录图数据的数据标识与图数据加载标识之间的映射关系的映射表。相应地,在得到当前待加载图数据的图数据加载标识后,将所得到的图数据加载标识与当前待加载图数据的数据标识之间的映射关系记录到映射表中。图4示出了根据本说明书的实施例的用于记录图数据的数据标识与图数据加载标识之间的映射关系的映射表的示例示意图。
59.在一些实施例中,图数据加载装置应用于图数据处理设备中,例如,图数据加载装置被实现为图数据处理设备中的图数据加载线程。在这种情况下,图数据加载标识可以保存在图数据处理设备中。例如,图数据加载标识可以保持在图数据处理设备的本地内存中的特定存储位置。或者,图数据处理设备的本地内存中维护图数据加载标识队列。每个图数据加载过程中得到的当前图数据加载标识依序存储在图数据加载标识队列中。或者,图数据处理设备的本地内存中维护用于记录图数据的数据标识与图数据加载标识之间的映射关系的映射表。相应地,在得到当前待加载图数据的图数据加载标识后,将所得到的图数据加载标识与当前待加载图数据的数据标识之间的映射关系记录到映射表中。
60.在330,在如上确定出当前待加载图数据的图数据加载标识后,释放为当前待加载图数据获取的锁。
61.在340,基于当前待加载图数据的图数据加载标识,确定当前待加载图数据在图数据处理设备的本地内存中所创建的图数据存储空间中的存储位置。
62.在本说明书中,在进行图数据加载之前,可以在图数据处理设备的本地内存中创建图数据存储空间。所创建的图数据存储空间可以包括多块用于存储加载图数据的内存块。例如,可以从图数据处理设备的本地内存的空闲内存空间中创建内存块。每次可以创建一个或多个内存块,所创建的每个内存块可以具有固定数目(p)个存储位置。此外,图数据处理设备的本地内存中还维护首地址队列,并且所创建的内存块的首地址根据创建时间顺序依序存储在首地址队列中。在同时创建多个内存块时,该多个内存块的创建时间顺序可以随机确定。
63.图5a和图5b示出了根据本说明书的实施例的图数据处理设备的本地内存中的图数据存储空间的示例示意图。在图5a的示例中,每个存储位置的存储大小足够存储待加载图数据,从而每条待加载图数据都存储在内存块的各个对应存储位置处。在图5b的示例中,存在部分待加载图数据的数据大小超出对应存储位置的存储大小,在这种情况下,需要从图数据处理设备的本地内存中为该待加载图数据新申请合适的空闲内存空间,并将该待加载图数据存储在新申请的内存空间中,同时将该新申请内存空间的空间地址存储到图数据存储空间中的所确定出的存储位置。在图5a和图5b中,首地址队列中的存储的各个内存块的首地址指向对应内存块的第一个存储位置。
64.图6示出了根据本说明书的实施例的待加载图数据在图数据存储空间中的存储位置的确定过程600的示例流程图。
65.如图6所示,在610,基于当前待加载图数据的图数据加载标识,确定当前待加载图数据在图数据处理设备的本地内存中所创建的图数据存储空间中的存储位置索引,所述存储位置索引包括内存块的内存块索引以及内存块中的偏移量。
66.在一个示例中,在图数据加载标识利用图数据的加载序号表示的情况下,可以对图数据加载标识进行以内存块中的存储位置数目(p)为模数的取模处理。然后,取模处理所得到的整数结果作为待加载图数据在图数据存储空间中的内存块索引,以及将余数结果作为内存块中的偏移量。这里,偏移量可以是相对于首地址所对应的存储位置的偏移位置个数。
67.在另一示例中,在图数据加载标识使用图数据的数据大小表示的情况下,可以对图数据加载标识进行以内存块中的存储大小(capacity)为模数的取模处理。然后,取模处理所得到的整数结果作为待加载图数据在图数据存储空间中的内存块索引,以及基于余数结果确定出内存块中的偏移地址,作为内存块中的偏移量。这里,偏移地址是指存储位置的起始地址相对于首地址的偏移量。
68.在620,基于内存块索引,从图数据处理设备的本地内存中维护的首地址队列中获取内存块的首地址。在630,根据所获取的内存块的首地址以及偏移量,确定出待加载图数据在图数据存储空间中的存储位置。例如,可以利用首地址以及每个偏移量对应的偏移地址来确定出对应的存储位置。
69.回到图3,在确定出当前待加载图数据在图数据存储空间中的存储位置后,在350,将待加载图数据保存到图数据存储空间中的对应存储位置。在一个示例中,可以将当前待加载图数据的数据标识和数据属性保存到图数据存储空间中的对应存储位置。在另一示例中,也可以仅仅将当前待加载图数据的数据属性保存到图数据存储空间中的对应存储位置。
70.图7示出了根据本说明书的实施例的用于将待加载图数据保存到图数据存储空间中的对应存储位置处的数据保存过程700的示例流程图。
71.如图7所示,在710,判断待加载图数据的数据大小是否超过图数据存储空间中的对应存储位置的存储大小。
72.在待加载图数据的数据大小不超过图数据存储空间中的对应存储位置的存储大小时,在720,将待加载图数据保存到图数据存储空间中的对应存储位置。
73.在待加载图数据的数据大小超过图数据存储空间中的对应存储位置的存储大小时,在730,从图数据处理设备的本地内存的空闲内存中为待加载图数据申请内存空间。
74.在申请到内存空间后,在740,将待加载图数据保存到所申请的内存空间,并且将所申请内存空间的空间地址(内存空间的首地址)保存到图数据存储空间中的对应存储位置。
75.图8示出了根据本说明书的实施例的用于将待加载图数据保存到图数据存储空间中的对应存储位置处的数据保存过程800的另一示例流程图。
76.如图8所示,在810,判断待加载图数据的数据属性的数据类型是否包含可变类型。这里,可变类型是数据类型可变,即,该数据类型的数据所占用的数据长度可变。
77.在待加载图数据的数据属性的数据类型不包含可变类型时,在820,将待加载图数据保存到图数据存储空间中的对应存储位置。这里,在待加载图数据包括多个数据属性的情况下,不包括可变类型是指所有数据属性都不包含可变类型。在这种情况下,由于待加载图数据的数据属性具有固定数据类型,从而可以预先基于待加载图数据的数据属性的数据类型确定出存储位置的数据大小,使得存储位置的存储大小足够存储待加载图数据。
78.在待加载图数据的数据属性的数据类型包含可变类型时,在830,从图数据存储设备的本地内存的空闲内存中为待加载图数据申请内存空间。
79.在申请到内存空间后,在840,将待加载图数据保存到所申请的内存空间,并且将所申请内存空间的空间地址(内存空间的首地址)保存到图数据存储空间中的对应存储位置。
80.要说明的是,在图3的示例中,存储位置的确定过程被示出为在锁释放过程之后执行。在其它实施例中,也可以在存储位置的确定过程完成后,执行锁释放过程。
81.如上参照图3到图8描述了根据本说明书的实施例的图数据加载方法。利用上述图数据加载方法,通过在锁释放的情况下执行图数据的保存过程,从而可以减少图数据加载过程中的锁持有时间,由此减少并发加载过程中的锁竞争,提升图数据加载的并发效率。
82.利用上述图数据加载方法,通过在图数据处理装置的本地内存中创建多个用于存储图数据的内存块,每个内存块具有固定数目个存储位置,并且在图数据处理装置的本地内存中维护首地址队列,可以基于图数据加载标识容易地确定出存储位置索引,并基于存储位置索引来得到图数据存储空间中的存储位置,由此降低存储位置确定的复杂度。
83.在如上将图数据加载到图数据处理设备后,在进行图数据处理时,可以从图数据处理设备的本地内存中获取对应的图数据进行图数据处理。
84.图9示出了根据本说明书的实施例的图数据获取方法900的示例流程图。图数据获取方法可以由图数据获取装置执行,在图数据获取装置中同样维护有上述映射表和首地址队列。在图数据获取装置应用于图数据处理设备中时,映射表和首地址队列可以由图数据处理设备维护。
85.如图9所示,在910,响应于接收到图数据获取请求,基于图数据获取请求中的待获取图数据的数据标识,从映射表中获取对应的图数据加载标识。
86.在920,根据图数据加载标识,确定图数据在图数据处理设备的图数据存储空间中的存储位置索引,该存储位置索引包括图数据所在内存块的内存索引以及内存块中的偏移量。
87.在930,基于内存索引从首地址队列中获取对应内存块的首地址。在940,基于所获取的内存块的首地址以及所得到的内存块中的偏移量,确定图数据在图数据存储空间中的存储位置。
88.在950,基于所确定出的存储位置,从图数据处理设备的图数据存储空间中获取对应的存储内容。在960,判断所获取的存储内容是否是图数据,如果所获取的存储内容是图书,则图数据获取过程完成。如果所获取的存储内容是内存空间的存储地址,则在970,从存储地址所指向的内存空间中获取图数据,由此完成图数据获取过程。
89.图10示出了根据本说明书的实施例的图数据加载装置1000的示例方框图。如图10所示,图数据加载装置1000可以包括锁获取单元1010、标识确定单元1020、锁释放单元1030、存储位置确定单元1040和图数据保存单元1050。
90.锁获取单元1010被配置为响应于从外部获取到待加载图数据,为待加载图数据获取锁。锁获取单元1010的操作可以参考上面参照图3的310描述的操作。可选地,图数据加载装置1000还可以包括图数据获取单元。所述图数据获取单元被配置为从外部获取待加载图数据。
91.标识确定单元1020被配置为基于图数据加载装置中存储的前一加载图数据的图数据加载标识,确定待加载图数据的图数据加载标识。标识确定单元1020的操作可以参考上面参照图3的320描述的操作。
92.锁释放单元1030被配置为释放为待加载图数据获取的锁。锁释放单元1030的操作可以参考上面参照图3的330描述的操作。
93.存储位置确定单元1040被配置为基于待加载图数据的图数据加载标识,确定待加载图数据在图数据处理设备的本地内存中所创建的图数据存储空间中的存储位置。存储位置确定单元1040的操作可以参考上面参照图3的340描述的操作以及参考图6描述的操作。
94.图数据保存单元1050被配置为在完成锁释放后,将待加载图数据保存到图数据存储空间中的对应存储位置。图数据保存单元1050的操作可以参考上面参照图3的350描述的操作以及参照图7或图8描述的操作。
95.在一些实施例中,图数据保存单元1050可以将待加载图数据的数据标识和数据属性加载到图数据存储空间中的对应存储位置。在一些实施例中,图数据保存单元1050可以将述待加载图数据的数据属性加载到图数据存储空间中的对应存储位置。
96.图11示出了根据本说明书的实施例的存储位置确定单元1100的示例方框图。在该实施例中,图数据存储空间可以包括多个用于存储图数据的内存块,每个内存块具有固定数目个存储位置。此外,图数据处理设备的本地内存中还维护首地址队列,所创建内存块的首地址根据创建时间顺序依序存储在首地址队中。
97.如图11所示,存储位置确定单元1100包括存储位置索引确定模块1110、首地址获取模块1120和存储位置确定模块1130。
98.存储位置索引确定模块1110被配置为基于待加载图数据的图数据加载标识,确定待加载图数据在图数据处理设备的本地内存中所创建的图数据存储空间中的存储位置索引,所确定出的存储位置索引包括内存块的内存块索引以及内存块中的偏移量。存储位置索引确定模块1110的操作可以参考上面参照图6的610描述的操作。
99.首地址获取模块1120被配置为基于内存块索引从首地址队列中获取所在内存块的首地址。首地址获取模块1120的操作可以参考上面参照图6的620描述的操作。
100.存储位置确定模块1130被配置为根据所获取的内存块的首地址以及偏移量,确定待加载图数据在图数据存储空间中的存储位置。存储位置确定模块1130的操作可以参考上面参照图6的630描述的操作。
101.图12示出了根据本说明书的实施例的图数据保存单元1200的示例方框图。如图12所示,图数据保存单元1200包括判断模块1210、内存空间申请模块1220、图数据保存模块1230和存储地址保存模块1240。
102.判断模块1210被配置为判断待加载图数据的数据大小是否超过图数据存储空间中的对应存储位置的存储大小。判断模块1210的操作可以参考上面参照图7的710描述的操作。
103.内存空间申请模块1220被配置为在待加载图数据的数据大小超过图数据存储空间中的对应存储位置的存储大小时,从图数据处理设备的本地内存的空闲内存中为待加载图数据申请内存空间。内存空间申请模块1220的操作可以参考上面参照图7的730描述的操作。
104.图数据保存模块1230被配置为在待加载图数据的数据大小不超过图数据存储空间中的对应存储位置的存储大小时,将待加载图数据保存到图数据存储空间中的对应存储位置处;以及在待加载图数据的数据大小超过图数据存储空间中的对应存储位置的存储大小时,将所述待加载图数据保存到所申请内存空间。图数据保存模块1230的操作可以参考上面参照图7的720或740描述的操作。
105.存储地址保存模块1240被配置为在待加载图数据的数据大小超过图数据存储空间中的对应存储位置的存储大小时,将所申请内存空间的空间地址保存到图数据存储空间中的对应存储位置。存储地址保存模块1240的操作可以参考上面参照图7的740描述的操作。
106.图13示出了根据本说明书的实施例的图数据保存单元1300的另一示例方框图。如图13所示,图数据保存单元1300包括判断模块1310、内存空间申请模块1320、图数据保存模块1330和存储地址保存模块1340。
107.判断模块1310被配置为判断待加载图数据的数据属性的数据类型是否包含可变类型。判断模块1310的操作可以参考上面参照图8的810描述的操作。
108.内存空间申请模块1320被配置为在待加载图数据的数据属性的数据类型包含可变类型时,从图数据处理设备的本地内存的空闲内存中为待加载图数据申请内存空间。内存空间申请模块1320的操作可以参考上面参照图8的830描述的操作。
109.图数据保存模块1330被配置为在待加载图数据的数据属性的数据类型不包含可变类型时,将待加载图数据保存到图数据存储空间中的对应存储位置;以及在待加载图数据的数据属性的数据类型包含可变类型时,将待加载图数据保存到所申请的内存空间。图数据保存模块1330的操作可以参考上面参照图8的820或840描述的操作。
110.存储地址保存模块1340被配置为在待加载图数据的数据属性的数据类型包含可变类型时,将所申请内存空间的空间地址保存到图数据存储空间中的对应存储位置。存储地址保存模块1340的操作可以参考上面参照图8的840描述的操作。
111.此外,图数据加载装置中还可以维护用于记录图数据的数据标识与图数据加载标识之间的映射关系的映射表。相应地,图数据加载装置还可以包括映射关系记录单元。在得到待加载图数据的图数据加载标识后,映射关系记录单元将所得到的图数据加载标识与待加载图数据的数据标识之间的映射关系记录到映射表中。
112.图14示出了根据本说明书的实施例的图数据获取装置1400的示例方框图。如图14所示,图数据获取装置1400包括加载标识获取单元1410、存储位置索引确定单元1420、存储位置确定单元1430和图数据获取单元1440。
113.加载标识获取单元1410被配置为响应于接收到图数据获取请求,基于图数据获取请求中的待获取图数据的数据标识,从映射表中获取对应的图数据加载标识。加载标识获取单元1410的操作可以参考上面参照图9的910描述的操作。
114.存储位置索引确定单元1420被配置为根据图数据加载标识,确定图数据在图数据处理设备的图数据存储空间中的存储位置索引,该存储位置索引包括图数据所在内存块的内存索引以及内存块中的偏移量。存储位置索引确定单元1420的操作可以参考上面参照图9的920描述的操作。
115.存储位置确定单元1430被配置为基于内存索引从首地址队列中获取对应内存块
的首地址,并且基于所获取的内存块的首地址以及所得到的内存块中的偏移量,确定图数据在图数据存储空间中的存储位置。存储位置确定单元1430的操作可以参考上面参照图9的930和940描述的操作。
116.图数据获取单元1440被配置为基于所确定出的存储位置,从图数据处理设备的图数据存储空间中获取对应的图数据,由此完成图数据获取。图数据获取单元1440的操作可以参考上面参照图9的950

970描述的操作。
117.如上参照图1到图14,对根据本说明书实施例的图数据加载方法、图数据加载装置、图数据获取方法以及图数据获取装置进行了描述。上面的图数据加载装置和图数据获取装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
118.图15示出了根据本说明书的实施例的基于计算机系统实现的图数据加载装置1500的示意图。如图15所示,图数据加载装置1500可以包括至少一个处理器1510、存储器(例如,非易失性存储器)1520、内存1530和通信接口1540,并且至少一个处理器1510、存储器1520、内存1530和通信接口1540经由总线1560连接在一起。至少一个处理器1510执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
119.在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1510:响应于从外部获取到待加载图数据,为待加载图数据获取锁;基于图数据加载装置中存储的前一加载图数据的图数据加载标识,确定待加载图数据的图数据加载标识;释放为所述待加载图数据获取的锁;以及在完成锁释放后,将待加载图数据保存到在图数据处理设备的本地内存中所创建的图数据存储空间中的对应存储位置,所述对应存储位置基于待加载图数据的图数据加载标识确定出。
120.应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1510进行本说明书的各个实施例中以上结合图3

图8以及图10

图13描述的各种操作和功能。
121.图16示出了根据本说明书的实施例的基于计算机系统实现的图数据获取装置1600的示意图。如图16所示,图数据获取装置1600可以包括至少一个处理器1610、存储器(例如,非易失性存储器)1620、内存1630和通信接口1640,并且至少一个处理器1610、存储器1620、内存1630和通信接口1640经由总线1660连接在一起。至少一个处理器1610执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
122.在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1610:响应于接收到图数据获取请求,基于图数据获取请求中的待获取图数据的数据标识,从映射表中获取对应的图数据加载标识;根据图数据加载标识,确定图数据在图数据处理设备的图数据存储空间中的存储位置索引,该存储位置索引包括图数据所在内存块的内存索引以及内存块中的偏移量;基于内存索引从首地址队列中获取对应内存块的首地址,并且基于所获取的内存块的首地址以及所得到的内存块中的偏移量,确定图数据在图数据存储空间中的存储位置;以及基于所确定出的存储位置,从图数据处理设备的图数据存储空间中获取对应的图数据。
123.应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1610执行本说明书的各个实施例中以上结合图9以及图14描述的各种操作和功能。
124.根据一个实施例,提供了一种比如机器可读介质(例如,非暂时性机器可读介质)
的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1

图14描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
125.在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
126.可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd

rom、cd

r、cd

rw、dvd

rom、dvd

ram、dvd

rw、dvd

rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
127.根据一个实施例,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序当被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1

图14描述的各种操作和功能。
128.本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
129.需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
130.以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
131.上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
132.本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献