CN116737067A - 一种图数据的存储加载结构和方法 - Google Patents
一种图数据的存储加载结构和方法 Download PDFInfo
- Publication number
- CN116737067A CN116737067A CN202310535946.7A CN202310535946A CN116737067A CN 116737067 A CN116737067 A CN 116737067A CN 202310535946 A CN202310535946 A CN 202310535946A CN 116737067 A CN116737067 A CN 116737067A
- Authority
- CN
- China
- Prior art keywords
- information
- point
- storage
- edge
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 27
- 239000012634 fragment Substances 0.000 claims abstract description 28
- 238000013500 data storage Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种图数据的存储加载结构和方法,其中,图数据的存储加载结构包括:点文件和边文件;其中,每一点文件包括多个点片段,每一点片段包括点ID、边存储位置信息和点属性信息;每一边文件包括多个边片段,每一边片段包括起始点位置信息、边信息和下一段边片段位置信息;其中,每条边信息包括终止点ID、终止点位置信息和边属性信息;存储加载结构中、仅点片段的点ID和边存储位置信息加载至内存。本发明的技术方案能解决现有技术中大规模数据难以完全加载进内存,数组存储结构对变长数据需要预留空间,造成存储空间浪费;链表存储结构中磁盘对随机读操作不友好的问题。
Description
技术领域
本发明涉及图数据技术领域,尤其涉及一种图数据的存储加载结构和方法。
背景技术
图数据是一组点和边的集合,其中,“点”表示实体,“边”表示实体间的关系。图数据中,数据间的关系和数据本身同样重要,它们被作为数据的一部分进行存储。图数据能够直观地可视化关系,是存储、查询和分析高度互联数据的最优办法。随着技术的发展,人们对这些数据的分析和使用不再局限于从统计角度分析相关性,而是希望从关联角度揭示数据的因果联系,因此能够揭示数据因果联系的图数据日益成为人们存储和分析数据的首选。
图数据的存储加载结构通常包括数组存储和链表存储方式。其中,数组存储是最直接的图数据存储方式,能够将图数据中每一个点连接的所有边按照一定顺序一起存储。如图1所示,数组存储结构中点文件由一系列的点组成,每个点文件包括点的ID、META信息以及这个点的属性。每个边文件中按照起始点的顺序存储点上对应的边。每条边的存储包括终止点ID、META信息以及边的属性。META信息包括点边类型、边方向以及实现事务的额外字段等。此存储结构能够直接从起始点遍历所有的边数据,因此它的读取性能非常高。然而,该存储方式也需要处理一个很棘手的问题,就是变长数组。为了解决变长数组问题,可以改用链表方式存储图数据。在链表存储结构中,如图2所示,点文件和边文件存储的全部都是ID,每个ID都是固定长度的,通过ID能够计算偏移量位置,通过偏移量位置直接读取数据。因为它能够通过位置计算ID,而偏移量和ID是一一对应的,所以每个点不用保存自身ID。
数组存储结构和链表存储结构存在以下问题:首先,两种结构在面临大规模数据时难以完全加载进内存,需考虑内存+磁盘相结合的存储方案;另外,磁盘读写速度远不及内存,会降低查询效率,在进行磁盘访问时,需合理考虑磁盘数据的快速定位问题,而数组存储结构对变长数据需要预留空间,这就造成了存储空间的浪费,而链表存储结构中,磁盘对随机读操作很不友好。
发明内容
本发明提供一种图数据的存储加载结构和方法的技术方案,旨在解决现有技术中大规模数据难以完全加载进内存,数组存储结构对变长数据需要预留空间,造成存储空间浪费;链表存储结构中磁盘对随机读操作不友好的问题。
为解决上述问题,根据本发明的第一方面,本发明提出了一种图数据的存储加载结构,包括:点文件和边文件;其中,
每一点文件包括多个点片段,每一点片段包括点ID、边存储位置信息和点属性信息;
每一边文件包括多个边片段,每一边片段包括起始点位置信息、边信息和下一段边片段位置信息;其中,每条边信息包括终止点ID、终止点位置信息和边属性信息;
存储加载结构中、仅点片段的点ID和边存储位置信息加载至内存。
优选的,图数据的存储加载结构,边存储位置信息包括边片段在磁盘中的物理首地址,边片段在磁盘中的存储空间固定。
优选的,图数据的存储加载结构,边文件为多段定长存储的分段链表形式,边文件中、每一边片段的起始点位置信息、每条边信息的存储长度、每条边信息的存储数量和下一段边片段位置信息均为固定长度。
优选的,图数据的存储加载结构,每一边片段的起始点位置信息包括:所述边片段在点文件中对应起始点的物理存放地址。
优选的,图数据的存储加载结构,下一段边片段位置信息包括外链的下一边片段的起始点位置信息;
下一段边片段位置信息还包括边信息分配到新空间的新空间首地址,该边信息的数量大于或等于预留空间。
优选的,图数据的存储加载结构,每一边片段存储的边信息数量为可调参数;可调参数中,边信息数量与边信息的预留空间大小成线性关系。
优选的,图数据的存储加载结构,存储加载结构的每一点片段中、点ID和边存储位置信息加载在内存中,存储加载结构的其余部分存储在磁盘中。
根据本发明的第二方面,本发明还提供了一种图数据的存储加载方法,用于上述任一项技术方案提供的图数据的存储加载结构;存储加载方法包括:
当图数据的存储加载结构被加载时,将点文件中点片段的点ID和边存储位置信息加载至内存;
内存根据边存储位置信息查找对应的边信息在磁盘中的物理首地址;
内存根据边信息在磁盘中的物理首地址,定位和读取边信息。
优选的,图数据的存储加载方法,内存根据边信息在磁盘中的物理首地址,定位和读取边信息的步骤,包括:
根据边信息在磁盘中的物理首地址,定位边信息在磁盘中的存储空间位置;
根据边信息在磁盘中的存储空间位置以及边片段的固定存储空间,读取边信息。
优选的,图数据的存储加载方法,根据边信息在磁盘中的存储空间位置以及边片段的固定存储空间,读取边信息的步骤,包括:
从边片段的起始点位置信息处查找边信息在磁盘中的存储空间位置;
当从边片段中未查找到边信息时,根据边片段的下一段边片段位置信息中查找边信息在磁盘中的存储空间位置;
当定位到边片段在磁盘中的存储空间位置时,读取边信息。
综上,本发明提供的图数据的存储加载方案,通过设置点文件和边文件,每个点文件包括多个点片段,同样每个边文件包括多个边片段,点片段包括点ID、边存储位置信息和点属性信息,该边存储位置信息即对应边信息的空间存储位置,这样在加载存储加载结构时仅需要将点片段的点ID和边存储位置信息加载至内存中即可,该存储加载结构的其他部分均设置在磁盘中,而内存根据边存储位置信息就能查找到边文件中边片段上对应边信息的空间存储位置,进而定位和读取该边信息。通过上述方案能够解决大规模数据存储的内存占用问题,达到实现磁盘数据的快速定位,提高大规模数据存储的读取效率的目的。综上,本发明提供的技术方案能够解决现有技术中大规模数据难以完全加载进内存,数据存储结构对变长数据需要预留空间,造成存储空间浪费,而链表存储结构中磁盘对随机读操作不友好的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是现有技术提供的一种数组存储结构的结构示意图;
图2是现有技术提供的一种链表存储结构的结构示意图;
图3是本发明实施例提供的一种图数据的存储加载结构的结构示意图;
图4是本发明实施例提供的一种图数据的存储加载方法的流程示意图;
图5是图4所示实施例提供的一种定位和读取边信息的方法的流程示意图;
图6是图5所示实施例提供的一种边信息的读取方法的流程示意图。
相关附图标记如下所示:
100-点文件、200-边文件、101-点片段、201-边片段、202-边信息
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决的技术问题是:
现有的图数据的存储加载结构通常包括数组存储结构和链表存储结构,数组存储结构和链表存储结构存在以下问题:首先,两种结构在面临大规模数据时难以完全加载进内存,需考虑内存+磁盘相结合的存储方案;另外,磁盘读写速度远不及内存,会降低查询效率,在进行磁盘访问时,需合理考虑磁盘数据的快速定位问题,而数组存储结构对变长数据需要预留空间,这就造成了存储空间的浪费,而链表存储结构中,磁盘对随机读操作很不友好。
为了解决上述问题,本发明下述实施例提供了一种图数据的存储加载结构和方法,通过设置点文件和边文件,每个点文件包括多个点片段,同样每个边文件包括多个边片段,点片段包括点ID、边存储位置信息和点属性信息,该边存储位置信息即对应边信息的空间存储位置,这样在存储加载结构加载时仅将点片段的点ID和边存储位置信息加载至内存中,该存储加载结构的其他部分均设置在磁盘中,而内存根据边存储位置信息就能查找到边文件中边片段上对应边信息的空间存储位置,进而定位和读取边信息。通过上述方案能够解决大规模数据存储的内存占用问题,达到实现磁盘数据的快速定位,提高大规模数据存储的读取效率的目的。
为实现上述目的,参见图3,图3为本发明实施例提供的一种图数据的存储加载结构的结构示意图。如图3所示,该图数据的存储加载结构包括:
点文件和边文件;其中,
每一点文件包括多个点片段,每一点片段包括点ID、边存储位置信息和点属性信息。其中,边存储位置信息仅仅包含边信息在边片段中的存储地址,且在加载至内存时,该存储加载结构中、仅点片段的点ID和边存储位置信息加载至内存,其他部分仍在磁盘中,这样就能够避免数组存储结构和链表存储结构在面临大规模数据难以完全加载进内存的问题。
每一边文件包括多个边片段,每一边片段包括起始点位置信息、边信息和下一段边片段位置信息;其中,每条边信息包括终止点ID、终止点位置信息和边属性信息。因为每一边文件包括多个边片段,而边片段的存储空间在磁盘中位置固定,并且每一边片段包括起始点位置信息、边新和下一边片段位置信息,这样在得知边片段的起始点位置信息和边存储位置信息后,就能够通过边片段在磁盘中固定的存储空间位置,快速查找到对应的边信息。从而减少磁盘读写速度慢,降低查询效率的问题,在磁盘访问时能够快速定位边信息,且不需要应对边片段数据边长的问题。另外,因为边片段的存储空间位置固定,这样就解决了传统的链表存储结构中磁盘对随机读操作不友好的问题。
综上,本发明提供的图数据的存储加载结构,通过设置点文件和边文件,每个点文件包括多个点片段,同样每个边文件包括多个边片段,点片段包括点ID、边存储位置信息和点属性信息,该边存储位置信息即对应边信息的空间存储位置,这样在加载存储加载结构时仅将点片段的点ID和边存储位置信息加载至内存中即可,该存储加载结构的其他部分均设置在磁盘中,而内存根据边存储位置信息就能查找到边文件中边片段上对应边信息的空间存储位置,进而定位和读取边信息。通过上述方案能够解决大规模数据存储的内存占用问题,达到实现磁盘数据的快速定位,提高大规模数据存储的读取效率的目的。综上,本发明提供的技术方案能够解决现有技术中大规模数据难以完全加载进内存,数据存储结构对变长数据需要预留空间,造成存储空间浪费,而链表存储结构中磁盘对随机读操作不友好的问题。
另外,作为一种优选的实施例,如图3所示,图数据的存储加载结构,边存储位置信息包括边片段在磁盘中的物理首地址,边片段在磁盘中的存储空间固定。
因为边存储位置信息需要加载在内存中,边存储位置信息包括边片段在磁盘中的物理首地址,而且边片段在磁盘中的存储空间固定,这样通过该边片段在磁盘中的物理首地址,磁盘就能够进行IO操作快速定位到边片段的具体位置,结合边片段的固定存储空间能够快速读取边片段上的边信息。另外磁盘根据地址信息指针能够快速跳转到制定位置的时间复杂度为0(1),这样就能够快速高效地定位和提取边信息。另外因为边存储位置信息是会加载在内存中的,因此该边存储位置信息仅包括边片段在磁盘中的物理首地址,这样仅仅将该物理首地址加载在内存中即可,解决了大规模数据难以完全加载进内存的问题。
另外,作为一种优选的实施例,如图3所示的图数据的存储加载结构中,边文件为多段定长存储的分段链表形式,边文件中、每一边片段的起始点位置信息、每条边信息的存储长度、每条边信息的存储数量和下一段边片段位置信息均为固定长度。
因为边文件采取多段定长存储的分段链表结构的形式,所以在边文件中每一边片段的起始点位置信息、每条边信息的存储长度、每条边信息的存储数量和下一段边片段的位置信息均为固定长度,此时在进行边数据读取时,获知边片段的首地址结合边信息的偏移量,就能够快速查找并读取指定的边信息。
另外,作为一种优选的实施例,如图3所示的图数据的存储加载结构,每一边片段的起始点位置信息包括:点文件中对应该起始点的物理存放地址。
因为每一边片段的起始点位置信息包括点文件对应该起始点的物理存放地址,所以通过该起始点的位置信息,即起始点的物理存放地址就能够快速回溯起始点信息。
另外,作为一种优选的实施例,如图3所示,图数据的存储加载结构,下一段边片段位置信息包括外链的下一边片段的起始点位置信息;
下一段边片段位置信息还包括特定的边信息分配到新空间的新空间首地址,该特定的边信息为数量(或者说存储长度)大于或等于预留空间的边信息。
下一段边片段位置信息是针对边信息数量不均的情况进行的一个外链操作,当边信息数量大于或等于预留空间时,磁盘能够自动分配新空间,在新空间中存储该边信息的空间首地址,这样就能保证每一边片段的存储空间的长度固定,方便内存在磁盘中通过起始点位置信息快速查找边信息。
另外,作为一种优选的实施例,如图3所示,图数据的存储加载结构,每一边片段存储的边信息数量为可调参数;可调参数中,边信息数量与边信息的预留空间大小成线性关系。
因为每条边片段存储的边信息的数量为可调数据,边信息数量与边信息的预留空间大小成线性关系,所以边信息的数量越大,则预留空间越大,空间复杂度越高,跳表越少,时间复杂度越低,越趋近于基于数组的存储;而边信息的数量越小,预留空间越小,空间复杂度越低,跳表约多,时间复杂度越高,则越趋近于基于链表的存储方案。
另外,作为一种优选的实施例,如图3所示,图数据的存储加载结构,存储加载结构的每一点片段中、点ID和边存储位置信息加载在内存中,存储加载结构的其余部分存储在磁盘中。在数据加载时,仅需要将图3所示的Memory部分加载进内存,该Memory部分包括每一点片段中点ID和边存储位置信息,该存储加载结构的其余部分均为磁盘操作,这样就大大压缩了内存用量。另外该存储加载结构的大部分数据存储在磁盘,解决了数据持久化的问题。
另外,基于上述图数据的存储加载结构实施例的同一构思,本发明实施例还提供图数据的存储加载方法的技术方案,用于实现本发明的上述结构,由于该方法实施例解决问题的原理与结构相似,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参见图4,图4为本发明实施例提供的一种图数据的存储加载方法的流程示意图。如图4所示,该图数据的存储加载方法,用于上述任一项实施例提供的图数据的存储加载结构;该图数据的存储加载方法包括:
S110:当图数据的存储加载结构被加载时,将点文件中点片段的点ID和边存储位置信息加载至内存。
S120:内存根据边存储位置信息查找对应的边信息在磁盘中的物理首地址。
S130:内存根据边信息在磁盘中的物理首地址,定位和读取边信息。
综上,本发明提供的图数据的存储加载方法,通过设置点文件和边文件,每个点文件包括多个点片段,同样每个边文件包括多个边片段,点片段包括点ID、边存储位置信息和点属性信息,该边存储位置信息即对应边信息的空间存储位置,这样在存储加载结构加载时仅将点片段的点ID和边存储位置信息加载至内存中即可,该存储加载结构的其他部分均设置在磁盘中,而内存根据边存储位置信息就能查找到边文件中边片段上对应边信息的空间存储位置,进而定位和读取边信息。通过上述方案能够解决大规模数据存储的内存占用问题,达到实现磁盘数据的快速定位,提高大规模数据存储的读取效率的目的。综上,本发明提供的技术方案能够解决现有技术中大规模数据难以完全加载进内存,数据存储结构对变长数据需要预留空间,造成存储空间浪费,而链表存储结构中磁盘对随机读操作不友好的问题。
作为一种优选的实施例,如图5所示,上述图数据的存储加载方法,步骤S130:内存根据边信息在磁盘中的物理首地址,定位和读取边信息的步骤,包括:
S131:根据边信息在磁盘中的物理首地址,定位边信息在磁盘中的存储空间位置。
S132:根据边信息在磁盘中的存储空间位置以及边片段的固定存储空间,读取边信息。
在获取边信息在磁盘中的物理首地址后,就能够根据点文件中的边存储位置查找边文件的起始点位置,然后根据该起始点位置查找该边信息在磁盘中的物理首地址,然后定位边信息在磁盘中的存储空间位置,因为边片段的存储空间固定,因此通过上述边片段的存储空间大小和边信息的存储空间位置,就能够快速定位和读取到边信息。
因为边文件中边片段的存储空间大小是固定的,这样多余的边信息可能存在在下一段边片段处,所以能够通过当前边片段中的下一段边片段位置查找下一段边片段的起始点位置,进而从下一段边片段中查找到边信息。具体地,如图6所示,作为一种优选的实施例,上述图数据的存储加载方法,步骤S132:根据边信息在磁盘中的存储空间位置以及边片段的固定存储空间,读取边信息的步骤,包括:
S1321:从边片段的起始点位置信息处查找边信息在磁盘中的存储空间位置。
S1322:当从边片段中未查找到边信息时,根据边片段的下一段边片段位置信息中查找边信息在磁盘中的存储空间位置。
S1323:当定位到边信息在磁盘中的存储空间位置时,读取边信息。
具体地,作为一种优选的实施例,本申请随机创建N个节点,每个节点创建M条边(度数),每条边有N个属性,统计内存使用和检索平均用时,结果如下表1所示:
表1
根据上述实验,可得如下结论:
①本技术方案内存使用量较基于内存方法明显降低,代价是检索效率有所下降;
②尽管检索效率下降,但仍能达到11Wit/s的效率,满足多数场景,且超过多数数据库的检索效率;
③节点数量增加,也不影响检索效率;
④本实验采用机械硬盘进行实验,如果使用固态硬盘,速度能够再次提升;
⑤本技术方案所用内存仅与节点数量有关,与节点度数和节点属性数量无关,在大规模图数据存储时,具有较大优势。
应用场景实例:在进行企业图谱构建时,企业数量达8000万家,每个节点平均关联4条边,具有7个属性信息,研发环境具有1T内存,可以轻松对其加载与加工,然而加工后数据却因为生产环境无法满足内存需求而无法应用,生产环境仅需基本查询工作,图谱预估内存需要700G,实际服务器内存64G,相差较大,采用该技术方案仅需10G内存,且检索效率符合业务需求,满足生产需求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种图数据的存储加载结构,其特征在于,包括:点文件和边文件;其中,
每一点文件包括多个点片段,每一点片段包括点ID、边存储位置信息和点属性信息;
每一边文件包括多个边片段,每一边片段包括起始点位置信息、边信息和下一段边片段位置信息;其中,每条边信息包括终止点ID、终止点位置信息和边属性信息;
所述存储加载结构中、仅所述点片段的点ID和边存储位置信息加载至内存。
2.根据权利要求1所述的图数据的存储加载结构,其特征在于,所述边存储位置信息包括所述边片段在磁盘中的物理首地址,所述边片段在所述磁盘中的存储空间固定。
3.根据权利要求1所述的图数据的存储加载结构,其特征在于,所述边文件为多段定长存储的分段链表形式,所述边文件中、每一边片段的起始点位置信息、每条边信息的存储长度、每条边信息的存储数量和下一段边片段位置信息均为固定长度。
4.根据权利要求1所述的图数据的存储加载结构,其特征在于,每一所述边片段的起始点位置信息包括:所述点文件中对应起始点的物理存放地址。
5.根据权利要求1所述的图数据的存储加载结构,其特征在于,所述下一段边片段位置信息包括外链的下一边片段的起始点位置信息;
所述下一段边片段位置信息还包括边信息分配到新空间的新空间首地址;所述边信息的数量大于或等于预留空间。
6.根据权利要求1所述的图数据的存储加载结构,其特征在于,所述每一边片段存储的边信息数量为可调参数;所述可调参数中,所述边信息数量与边信息的预留空间大小成线性关系。
7.根据权利要求1所述的图数据的存储加载结构,其特征在于,所述存储加载结构的每一点片段中、所述点ID和边存储位置信息加载在内存中,所述存储加载结构的其余部分存储在磁盘中。
8.一种图数据的存储加载方法,其特征在于,用于权利要求1至7中任一项所述的图数据的存储加载结构;所述存储加载方法包括:
当所述图数据的存储加载结构被加载时,将点文件中点片段的点ID和边存储位置信息加载至内存;
所述内存根据所述边存储位置信息查找对应的边信息在磁盘中的物理首地址;
所述内存根据所述边信息在磁盘中的物理首地址,定位和读取所述边信息。
9.根据权利要求8所述的图数据的存储加载方法,其特征在于,所述内存根据所述边信息在磁盘中的物理首地址,定位和读取所述边信息的步骤,包括:
根据所述边信息在磁盘中的物理首地址,定位所述边信息在所述磁盘中的存储空间位置;
根据所述边信息在所述磁盘中的存储空间位置以及边片段的固定存储空间,读取所述边信息。
10.根据权利要求8所述的图数据的存储加载方法,其特征在于,所述根据所述边信息在所述磁盘中的存储空间位置以及边片段的固定存储空间,读取所述边信息的步骤,包括:
从所述边片段的起始点位置信息开始,查找所述边信息在所述磁盘中的存储空间位置;
当从所述边片段中未查找到所述边信息时,根据所述边片段的下一段边片段位置信息中查找所述边信息在所述磁盘中的存储空间位置;
当定位到所述边信息在所述磁盘中的存储空间位置时,读取所述边信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310535946.7A CN116737067A (zh) | 2023-05-12 | 2023-05-12 | 一种图数据的存储加载结构和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310535946.7A CN116737067A (zh) | 2023-05-12 | 2023-05-12 | 一种图数据的存储加载结构和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737067A true CN116737067A (zh) | 2023-09-12 |
Family
ID=87903450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310535946.7A Pending CN116737067A (zh) | 2023-05-12 | 2023-05-12 | 一种图数据的存储加载结构和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737067A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117932120A (zh) * | 2024-03-18 | 2024-04-26 | 支付宝(杭州)信息技术有限公司 | 图数据库的数据存储方法及装置 |
-
2023
- 2023-05-12 CN CN202310535946.7A patent/CN116737067A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117932120A (zh) * | 2024-03-18 | 2024-04-26 | 支付宝(杭州)信息技术有限公司 | 图数据库的数据存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10025822B2 (en) | Optimizing execution plans for in-memory-aware joins | |
CN108897761B (zh) | 一种聚簇存储方法及装置 | |
US8364751B2 (en) | Automated client/server operation partitioning | |
US20160188643A1 (en) | Method and apparatus for scalable sorting of a data set | |
JP3510042B2 (ja) | データベース管理方法及びシステム | |
CN111680063B (zh) | Elasticsearch分页查询数据的方法及装置 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
CN116737067A (zh) | 一种图数据的存储加载结构和方法 | |
US20110179013A1 (en) | Search Log Online Analytic Processing | |
CN110795469B (zh) | 基于Spark的高维序列数据相似性查询方法及系统 | |
CN106383826A (zh) | 数据库查询方法和装置 | |
CN110825953B (zh) | 数据查询方法、装置和设备 | |
Liroz-Gistau et al. | Dynamic workload-based partitioning algorithms for continuously growing databases | |
CN114969165B (zh) | 数据查询请求的处理方法、装置、设备及存储介质 | |
CN114969189A (zh) | 一种数据库连接池中连接确定方法及装置 | |
Das et al. | Query processing on large graphs: Approaches to scalability and response time trade offs | |
CN107451142B (zh) | 在数据库中写入和查询数据的方法与装置及其管理系统和计算机可读存储介质 | |
Tang et al. | Partitioned similarity search with cache-conscious data traversal | |
US20160117350A1 (en) | Column group selection method and apparatus for efficiently storing data in mixed olap/oltp workload environment | |
CN107291404B (zh) | 一种缓存下刷方法及系统 | |
CN109388638B (zh) | 用于分布式大规模并行处理数据库的方法及系统 | |
Al-Ghezi et al. | UniAdapt: universal adaption of replication and indexes in distributed RDF triples stores | |
Tian et al. | Partial replica selection for spatial datasets | |
Sapiecha et al. | Enhancing Throughput of Scalable Distributed Two--Layer Data Structures | |
CN112100247B (zh) | ElasticSearch查询数据的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |