CN115544321B - 一种图数据库存储的实现方法、装置及存储介质 - Google Patents

一种图数据库存储的实现方法、装置及存储介质 Download PDF

Info

Publication number
CN115544321B
CN115544321B CN202211495756.9A CN202211495756A CN115544321B CN 115544321 B CN115544321 B CN 115544321B CN 202211495756 A CN202211495756 A CN 202211495756A CN 115544321 B CN115544321 B CN 115544321B
Authority
CN
China
Prior art keywords
partition
data
leader
graph
written
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.)
Active
Application number
CN202211495756.9A
Other languages
English (en)
Other versions
CN115544321A (zh
Inventor
徐佳吉
鲍首熙
洪万福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Yuanting Information Technology Co ltd
Original Assignee
Xiamen Yuanting Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Yuanting Information Technology Co ltd filed Critical Xiamen Yuanting Information Technology Co ltd
Priority to CN202211495756.9A priority Critical patent/CN115544321B/zh
Publication of CN115544321A publication Critical patent/CN115544321A/zh
Application granted granted Critical
Publication of CN115544321B publication Critical patent/CN115544321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

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

本发明提供了一种图数据库存储的实现方法、装置及存储介质,用于实现对数据的按照图格式进行存储,该方法包括:S1,获取数据的无向图;S2,根据无向图的结构,获取无向图中各节点之间关系的数据结构;S3,将所获取的、无向图中各节点之间关系的数据结构表示的数据在分布式条件下采用图原生存储的方式写入到磁盘上;其中,步骤S3包括:S31,接收无向图的写入请求;S32,根据写入请求生成对应的主键;S33,根据预先设置的主键分区规则,由分区管理器将待写入的数据定位到与所生成的主键对应的分区,在分区中数据超出预定分区阈值时,结合动态分区的方式分区存储数据。利用上述技术方案,能实现对超大规模数据的处理与导入。

Description

一种图数据库存储的实现方法、装置及存储介质
技术领域
本发明涉及图数据库存储和分布式存储处理技术领域,特别是涉及面向超大规模数据的图数据库存储的实现方法、装置及存储介质。
背景技术
近些年来随着互联网时代的到来,人类拥有的数据量越来越庞大,普通的单机类型的图数据库越来越难以处理这些数据,采用分布式存储数据越来越成为许多企业的首要选择,例如HBase,Cassandra等。老的图数据库存储方式大都采用这些NoSQL类型的分布式数据库,但这种方式存储是按行存储的,在处理类似图类型的数据时性能较差。
近年来,诞生了一批图数据库厂商,其中以Neo4j为代表。Neo4j采用原生图存储方式,即在底层磁盘上的数据组织形式是图格式。这种图存储方式天生是为解决图类型的数据而生的,例如社交数据、人员关系网等,其速度优势是非原生方式的数十倍以上。目前,Neo4j社区版本图存储存在的问题是只提供了单机的部署方式,而在面对超大数据量时,有一些功能并不能满足于客户的需求,例如一次性超大规模数据的处理与导入;超大数据量下的全图统计、计算分析、数据存储安全等。
发明内容
本发明的实施例提供了一种图数据库存储的实现方法、装置及存储介质,以解决现有技术存在的对超大规模数据进行处理和导入的问题。
为了实现上述目的,一方面,提供了一种图数据库存储的实现方法,用于实现对数据的按照图逻辑格式进行存储,包括:
S1,获取数据的无向图;
S2,根据无向图的结构,获取无向图中各节点之间关系的数据结构;
S3,将所获取的无向图中各节点之间关系的数据结构表示的数据在分布式条件下采用图原生存储的方式写入到磁盘上;
其中,步骤S3包括:
S31,接收无向图的写入请求;
S32,根据写入请求生成对应的主键;
S33,根据预先设置的主键分区规则,由分区管理器将待写入的数据定位到与所生成的主键对应的分区,并在对应的分区中进行写入操作,在写入的过程中,分区管理器动态检测要写入的分区中的数据量是否超过预定的分区阈值;如是,则采用后台线程的方式进行自动分区分裂,并在分区管理器获得通过分区分裂生成的新分区的信息后,将未写完的数据继续写入新分区;在写入的过程中,持续进行动态检测和自动分区分裂的步骤,直至待写入的数据全都写入磁盘;其中,进行写入操作的分区为分区leader,每一分区leader对应多个副本分区,在数据写入分区leader之后,还包括将写入分区leader中的数据同步到对应的副本分区。
优选地,所述的方法,其中,步骤S33中,根据预先设置的主键分区规则,由分区管理器将待写入的数据定位到与所生成的主键对应的分区,并在对应的分区中进行写入操作的步骤包括:
根据预先设置的主键分区规则,分区管理器将待写入的数据定位到与所生成的主键对应的分区leader,并向分区leader发送写入请求;
将待写入的数据进行图存储逻辑格式的加工,并将加工后的数据添加到日志中,然后同步给分区leader对应的副本分区;判断是否有达到预定数目的副本分区返回成功的响应;如是,则将写入分区leader的数据设置为Commit的状态,Commit的状态代表数据写入成功;否则,分区leader确定当前批次的数据写入失败。
优选地,所述的方法,其中,步骤S33中,将待写入的数据进行图存储逻辑格式的加工包括:
为无向图的每个节点和每条关系分别分配对应的身份标识;
将无向图中各节点之间关系的数据结构表示的数据加工成多条数据记录,其中,每条数据记录代表一条关系并以关系身份标识来进行标识。
优选地,所述的方法,其中,在步骤S33之后,还包括:
接收磁盘中存储的图存储逻辑格式数据的读取请求;
根据读取请求确定对应的主键,分区管理器根据所确定的主键定位到对应的分区leader,并向所定位到的分区leader转发读取请求;
接收到读取请求的分区leader根据主键到缓存中检索要读取的数据;如果在缓存中检索不到,则继续到磁盘上去查找要读取的数据。
优选地,所述的方法,其中,通过MultiRaft算法来选取每一分区的分区leader和分区leader对应的副本分区,将选取出来的分区leader注册到分区管理器中存储,注册的分区leader在预定的租期内有效;在租期结束后,重新选取分区leader,并向分区管理器注册重新选取的分区leader。
优选地,所述的方法,其中,步骤S33中,分区管理器将待写入的数据定位到与所生成的主键对应的分区leader的步骤为:
分区管理器将待写入的数据定位到在分区管理器中存储的、与所生成的主键对应的分区leader。
优选地,所述的方法,其中,步骤S3中,在将数据写入到磁盘上时,采用改进型邻接链表的形式来组织底层数据;并将图属性数据和标签数据分别存放。
优选地,所述的方法,其中,还包括:
采用远程过程调用技术来进行不同进程的数据传输,且在数据传输中,根据传输数据的数据量是否达到预定的数据量阈值来判断是否进行数据压缩;如是,则压缩;如否,则不压缩。
另一方面,提供了一种图数据库存储的实现装置,包括存储器和处理器,存储器存储有至少一段程序,至少一段程序由处理器执行以实现上文所述任一的方法。
又一方面,提供了一种计算机可读存储介质,其中,存储介质中存储有至少一段程序,至少一段程序由处理器执行以实现上文所述的任一方法。
上述技术方案具有如下技术效果:
本发明实施例的技术方案,通过采用图原生的存储方式,提高了图遍历的效率和速度,通过在分布式条件下采用区间分区和动态分区结合的方式,加快了数据遍历的速度且提高了数据的吞吐量,从而解决了超大数据量下的全图分析性能、全图统计计算、数据导入和/或数据安装的问题。
在本发明进一步的实施例中,通过在数据传输中采用RPC和使用高效的数据压缩算法来选择性压缩数据大大提高了传输的效率;且通过设置租期,使分区leader能在一租期内存在,减少了分区leader的选举频次,降低了由选举导致的时耗,提高了存储系统的响应速度;从而,更有利于一次性处理和导入超大规模的数据量。
附图说明
图1为本发明一实施例的图数据库存储的实现方法的流程示意图;
图2为本发明一实施例的图数据库存储的实现方法中要处理的无向图;
图3为图2所示的无向图在实际存储中的数据结构示意图;
图4为本发明一实施例的图数据库存储的实现方法中要处理的无向图;
图5为图4所示的关系数据在磁盘上的具体组织形式示意图;
图6为本发明一实施例的图数据库存储的实现方法中,在分布式条件下对数据进行读或写操作的流程示意图;
图7为本发明一实施例的图数据库存储的实现装置的结构示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
图1为本发明一实施例的图数据库存储的实现方法的流程示意图。本发明实施例提供的图数据库存储的实现方法,用于实现对数据的图存储,该方法结合了图数据库存储技术和分布式存储技术,包括如下步骤:
S1,获取数据的无向图,如获取超大规模数据的无向图;
S2,根据无向图的结构,获取无向图中各节点之间关系的数据结构;
S3,将所获取的无向图中各节点之间关系的数据结构表示的数据在分布式条件下采用图原生存储的方式写入到磁盘上;
其中,步骤S3包括:
S31,接收无向图的写入请求;
S32,根据写入请求生成对应的主键;
S33,根据预先设置的主键分区规则,由分区管理器或分区管理者(PartitionManager)将待写入的数据定位到与所生成的主键对应的分区,并在对应的分区中进行写入操作,在写入的过程中,分区管理器动态检测要写入的分区中的数据量是否超过预定的分区阈值;如是,则采用后台线程的方式进行自动分区分裂,并在分区管理器获得通过分区分裂生成的新分区的信息后,将未写完的数据继续写入上述新分区;在写入的过程中,持续进行上述动态检测和自动分区分裂的步骤,直至待写入的数据全都写入磁盘;其中,进行上述写入操作的分区为分区leader,每一分区leader对应多个副本分区,在数据写入分区leader之后,还包括将写入分区leader中的数据同步到对应的副本分区的步骤。本发明实施例的图数据库存储实现方式采用了区间分区技术和动态分区技术结合的方式,并且支持预先分配分区的预分区方式,可以大大提高了系统的吞吐能力。
本发明实施例的分区管理器(Partition Manager)可以实现全局的分区管理;其可以由具有所需功能的程序或软件来实现。
本发明实施例的图数据库存储实现方法采用区间分区和动态分区组合的分区策略。其中,区间分区是根据主键预先设置的分区规则,通过主键来分区,这样可以帮助将数据快速定位到对应的分区;而动态是指当检测到一个分区的数据量超过预定的分区阈值时,采用后台线程的方式来自动进行分区分裂,以将超出的、还没写入的数据继续写入到分裂后生成的新分区中。具体地,在写入磁盘过程中,当检测要写入数据的分区中的数据量超过预定的分区阈值时,设置分裂标识,后台线程根据分裂标识进行后台工作,以实现分裂;分裂完成后,后台会将相关信息发送给负责全局分区工作的分区管理器(PartitionManager),然后,这个分区才能对外提供服务,即才能向其写入数据。基于多分区的对外提供服务,可以加速系统响应速度和系统的吞吐能力。
优选地,在步骤S33中,根据预先设置的主键分区规则,由分区管理器将待写入的数据定位到与所生成的主键对应的分区,并在对应的分区中进行写入操作的步骤包括:
根据预先设置的主键分区规则,分区管理器将待写入的数据定位到与所生成的主键对应的分区leader,并向分区leader发送写入请求;
将待写入的数据进行图存储逻辑格式的加工,并将加工后的数据添加到日志中,然后同步给分区leader对应的副本分区;判断是否有达到预定数目的副本分区返回成功的响应;如是,则将写入分区leader的数据设置为Commit的状态,Commit的状态代表数据写入成功;否则,分区leader确定当前批次的数据写入失败。
具体实现中,通过Multiraft算法来选择分区leader和其对应的多个副本分区;并采用改进的、基于MultiRaft算法来保证分区leader与副本分区中数据的一致性。一种实现中,在要保存相同数据的多个副本分区中选举出一个分区leader,这个分区leader 负责数据的读取和写入等操作。通常而言,确定分区leader的步骤是需要耗费一定时间的,如果每次写入数据时都需要重新确定分区leader会影响写入的效率。本发明一优选实施例的方案中,预先设定了一段时间,称该段时间为租期,一选举出来的分区leader会存在一个租期。在这一个租期内,选择出的分区leader 会注册到Partition Manager中进行存储,下次有数据请求时Partition Manager可以直接找到向其注册并存储在其上的分区leader来进行数据操作,从而避免了每次重新选取分区leader的操作,减少了耗时。在一个租期结束后,会开始一个新的租期,在新的租期会重新确定新的分区leader,确定出新的分区leader后,这个新的分区leader同样会注册并存储到Partition Manager,且其存在的时间长度为一个租期。利用这样的方式,可以提高写入的效率,从而提高响应速度。
优选地,将待写入的数据进行图存储逻辑格式的加工包括:为无向图的每个节点和每条关系分别分配对应的身份标识;将无向图中各节点之间关系的数据结构表示的数据加工成多条数据记录,其中,每条数据记录代表一条关系并以关系身份标识来进行标识。
优选地,本发明实施例的图数据库存储实现方法还包括对写入磁盘的图存储逻辑格式的数据进行读取的步骤。该读取步骤具体包括:
接收磁盘中存储的图存储逻辑格式数据的读取请求;
根据读取请求确定对应的主键,分区管理器根据所确定的主键定位到对应的分区leader,并向所定位到的分区leader转发读取请求;
接收到读取请求的分区leader根据主键到缓存中检索要读取的数据;如果在缓存中检索不到,则继续到磁盘上去查找要读取的数据。
优选地,本发明实施例的图数据库存储实现方法中,在采用图原生存储的方式将数据写入到磁盘上时,采用改进型邻接链表的形式来组织底层数据;并将图属性数据和标签数据分别存放即各自单独存放。利用这种底层数据的组织方式,可以实现O(1)复杂度的快速定位;且通过同时把图属性数据、标签数据单独存放,可以在遍历时减少不必要的磁盘I/O开销,优化了在超节点的情况下的图关系更新。
优选地,本发明实施例的图数据库存储实现方法中,在分布式条件下的数据传输采用远程过程调用(RPC,Remote Produce Call)技术来进行不同进程的数据传输,且在数据传输中,根据传输数据的数据量是否达到预定的数据量阈值来判断是否进行数据压缩;如是,则压缩;如否,则不压缩。一种具体实现中,数据传输是指在遍历情况下,不同节点不同分区需要进行数据交换汇集时发生的数据传输。
上述基于优化压缩的数据传输机制,可以在传输数据中采用Kryo序列化和反序列化的技术来实现。上述基于优化压缩的数据传输机制中,压缩技术对于提供存储系统处理数据能力具有一定的性能提升,存储系统在压缩数据之前判断该传输数据是否需要压缩来达到更快的速度,一般小数据量不需要压缩,只有传输到达一定数据量时才选择进行数据压缩;此外,采用RPC来进行不同进程的数据传输时,在传输的过程中可以对数据进行加密来保证数据的安全性。
本发明优选实施例的图数据库存储实现方法,采用图原生的存储方式,提高了图遍历的效率和速度;采用了在分布式条件下对存入数据进行合理动态分区的方式,加速了数据遍历的速度;在数据传输中采用RPC和使用高效的数据压缩算法来压缩数据大大提高了传输的效率;此外,可以采用缓存热点数据的机制来对频繁访问的热点数据的访问起到加速作用;从而,本发明优选实施例的图数据库存储实现方法可以解决现有技术在超大数据量下图数据库存储问题,包括全图分析性能、全图统计计算、数据导入、数据安装等问题。
实施例二:
图2为要存储的一示例性的无向图。图2的无向图结构中,英文字母A、B、C、D、E 表示图中的节点,R1、R2、R3、R4、R5表示图中的关系。A和B节点通过R1关系关联,B与C通过R2关系关联、B与D通过R3关系关联、C与E通过R4关系关联,D与E通过R5关系关联。
图3为图2所示的无向图在实际存储中的数据结构。图3中,关系R1、R2、R3、R4、R5的每条记录都由一系列身份标识即ID拼接而成。图3中的各条关系记录具有图存储逻辑格式。以R1对应的关系记录为例来进行说明。图3中为了表达方便,字母A、B分别指向A、B节点的ID,英文字母A后面的pre-edge-id、next-edge-id 分别表达跟A节点有关联关系的上一条关系的ID和下一条关系的ID。如图2,与A关联的R1关系没有上一条关系和下一条关系,因此都用NULL标识;字母B后面的pre-edge-id、next-edge-id分别表示跟B节点有关联关系的上一条关系的ID和下一条关系的ID。如图2,与B节点有关联的关系分别是R1、R2、R3,B的pre-edge-id无,下一条指向R2;对R2而言,其记录的B的next-edge-id又指向R3关系;然后,R3记录的B的pre-edge-id 是指向R2这条记录的;这种关系相互指向,在实际遍历查询关系时具有非常高速的遍历能力。
图2和图3仅为示例,实际的超大规模的数据对应的无向图会复杂得多,但其基本原理同图2和图3。
下面对图2赋予实际的含义来进行说明。图4是存储之前的数据形式,示出了典型的图方面的数据,表现的是现实世界中的人物之间的关系,包含节点和关系。具体地,A节点表示小青,B节点表示小华,C节点表示小亮,D节点表示小丽,E节点表示小城;其中,小青和小华是同学关系,小华和小亮是兄弟关系;小亮和小城是父子关系;小华和小丽是兄妹关系;小丽和小城是父女关系。图5是图4所示的关系数据在磁盘上的具体的组织形式,具有图存储逻辑格式。下面简单描述将图4进行存储的过程。
首先,在将图4存入或写入磁盘之前,会为每个节点和关系分配对应的身份标识即ID;如图4中节点的ID以s开头,A节点ID为s101、B节点的ID为s102、C节点的ID为s103、D节点的ID为s104、E节点的ID为s105;关系的ID以r开头,如,R同学的关系ID为r101、R兄弟的关系ID为r102、R兄妹的关系ID为r103、R父子的关系ID为r104、R父女的关系ID为r105。具体的含义是:A节点与B节点是同学关系、B节点与C节点是兄弟关系、B节点与D节点是兄妹关系、D节点与E节点是父女关系、C节点与E节点是父子关系。
图5中示出了图4在物理磁盘上的存储形式,其具有图存储逻辑格式。如图5,每条记录代表一条关系,并以关系ID进行标识。例如,r101这条记录是节点s101和s102 产生的关系。由于s101节点只有一条关系,所以s101后面的两列均为NULL。s102节点具有三条关系,所以可以关联下一条关系r102。r102中的s102节点和s103相关联。s102具有三条关系,所以s102的上一条关联关系和下一条关联关系分别是r101和r103。其他的记录以此类推。在这样的存储结构中,能够实现对某个节点的关系和对应的节点进行快速遍历,其具有O(1)的性能。
图6为本发明实施例的图数据库存储实现方法中,在分布式条件下对数据进行读或写操作的流程示意图。图6示出了如何在分布式条件下对请求的数据进行读或写操作以及如何保证分区leader和副本分区之间的数据一致性。图6中a、r、x可以代表要一批次写入或一批次读取的数据,示例性地,用value1代表a中的数据;用value2代表r中的数据;用value3代表x中的数据。Partiton Manager 代表是分区的管理器或管理者,负责定位数据的所属分区和定位对应的分区leader。图6中,服务器1的分区代表的是在服务器1上面存在的所有数据分区,示例性地,该例分别是分区1和分区2,并且这两个分区的角色都是leader(领导);服务器2和服务器3上的分区都是副本分区。图6中的箭头表示将a和x数据写入到了分区1中或者从分区1中读取,r数据写入到了分区2或者从分区2读取。如图6,线1标识的是a代表的数据的读写路径;线2标识的是r代表的数据的读写路径;线3标识的是x代表的数据的读写路径。
具体实现中,分区1的leader和分区2的leader 通过Multiraft 算法选择;在leader选择出来后,将其注册到Partition Manager。根据预先设定的时间间隔,可以定时更新分区leader的状态,如重新选择分区leader。此外,在一些场景下,如在出现可用网络不可用的场景下,也可以导致重新选举分区leader。
图6仅为示例性说明,在实际场景中,请求的数据量可以更多,存入的分区量也可以更多。
本发明优选实施例的图数据库存储实现方法通过其底层数据存储组织机制、图数据库存储在分布式条件下的高效数据选择性压缩传输机制、图数据库存储在分布式条件下的区间分区和动态分区机制、以及采用MultiRaft算法来保证分布式条件下副本数据一致性的机制实现了面向超大规模数据的图数据库存储;其中,底层存储机制控制了数据在磁盘上的存储采用原生存储,原生是指外部的数据存储到存储后会以图的相关概念如点和边的方式存储组织到磁盘上。非原生是指数据按照传统的行的方式来存储数据,相比于非原生,本发明实施例采用的原生方式的存储方式在图遍历速度上具有天生的速度优势。图数据库存储在分布式条件下的高效数据选择性压缩传输机制,保证了数据在不同节点之间对数据的压缩、传输和接收这三个动作;图数据库存储在采用MultiRaft算法保证分布式条件下副本数据一致性的机制,保证了在数据新增或者减少时在不同副本之间数据的一致性,保证了在出现个别节点宕机时,本发明实施例的图数据库存储装置或系统能继续提供服务。
实施例三:
本发明还提供一种图数据库存储的实现装置,如图7所示,该装置包括处理器701、存储器702、总线703、以及存储在所述存储器702中并可在所述处理器701上运行的计算机程序,处理器701包括一个或一个以上处理核心,存储器702通过总线703与处理器701相连,存储器702用于存储程序指令,所述处理器执行所述计算机程序时实现本发明实施例的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述图数据库存储的实现装置可以是计算机单元,该计算机单元可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机单元可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述计算机单元的组成结构仅仅是计算机单元的示例,并不构成对计算机单元的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件。例如所述计算机单元还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital SignalProcessor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机单元的控制中心,利用各种接口和线路连接整个计算机单元的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机单元的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(SecureDigital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例四:
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述计算机单元集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

Claims (8)

1.一种图数据库存储的实现方法,用于实现对数据的按照图格式进行存储,其特征在于,包括:
S1,获取所述数据的无向图;
S2,根据所述无向图的结构,获取无向图中各节点之间关系的数据结构;
S3,将所获取的所述无向图中各节点之间关系的数据结构表示的数据在分布式条件下采用图原生存储的方式写入到磁盘上;
其中,所述步骤S3包括:
S31,接收所述无向图的写入请求;
S32,根据所述写入请求生成对应的主键;
S33,根据预先设置的主键分区规则,由分区管理器将待写入的数据定位到与所生成的主键对应的分区,并在所述对应的分区中进行写入操作,在写入的过程中,所述分区管理器动态检测要写入的分区中的数据量是否超过预定的分区阈值;如是,则采用后台线程的方式进行自动分区分裂,并在所述分区管理器获得通过分区分裂生成的新分区的信息后,将未写完的数据继续写入所述新分区;在写入的过程中,持续进行所述动态检测和所述自动分区分裂的步骤,直至所述待写入的数据全都写入磁盘;其中,进行所述写入操作的分区为分区leader,每一分区leader对应多个副本分区,在数据写入分区leader之后,还包括将写入分区leader中的数据同步到对应的副本分区;
其中,所述步骤S33中,根据预先设置的主键分区规则,由分区管理器将待写入的数据定位到与所生成的主键对应的分区,并在所述对应的分区中进行写入操作的步骤包括:
根据预先设置的主键分区规则,分区管理器将待写入的数据定位到与所生成的主键对应的分区leader,并向所述分区leader发送所述写入请求;
将所述待写入的数据进行图存储逻辑格式的加工,并将加工后的数据添加到日志中,然后同步给所述分区leader对应的副本分区;判断是否有达到预定数目的副本分区返回成功的响应;如是,则将写入所述分区leader的数据设置为Commit的状态,所述Commit的状态代表数据写入成功;否则,分区leader确定当前批次的数据写入失败;
其中,所述步骤S33中,将所述待写入的数据进行图存储逻辑格式的加工包括:
为所述无向图的每个节点和每条关系分别分配对应的身份标识;
将所述无向图中各节点之间关系的数据结构表示的数据加工成多条数据记录,其中,每条数据记录代表一条关系并以关系身份标识来进行标识。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S33之后,还包括:
接收磁盘中存储的图存储逻辑格式数据的读取请求;
根据所述读取请求确定对应的主键,所述分区管理器根据所确定的主键定位到对应的分区leader,并向所定位到的分区leader转发读取请求;
接收到读取请求的分区leader根据所述主键到缓存中检索要读取的数据;如果在缓存中检索不到,则继续到磁盘上去查找要读取的数据。
3.根据权利要求1所述的方法,其特征在于,通过MultiRaft算法来选取每一分区的分区leader和分区leader对应的副本分区,将选取出来的分区leader注册到所述分区管理器中存储,注册的分区leader在预定的租期内有效;在所述租期结束后,重新选取分区leader,并向所述分区管理器注册重新选取的分区leader。
4.根据权利要求3所述的方法,其特征在于,所述步骤S33中,分区管理器将待写入的数据定位到与所生成的主键对应的分区leader的步骤为:
所述分区管理器将待写入的数据定位到在所述分区管理器中存储的、与所生成的主键对应的分区leader。
5.根据权利要求1所述的方法,其特征在于,所述步骤S3中,在将数据写入到磁盘上时,采用改进型邻接链表的形式来组织底层数据;并将图属性数据和标签数据分别存放。
6.根据权利要求1所述的方法,其特征在于,还包括:
采用远程过程调用技术来进行不同进程的数据传输,且在数据传输中,根据传输数据的数据量是否达到预定的数据量阈值来判断是否进行数据压缩;如是,则压缩;如否,则不压缩。
7.一种图数据库存储的实现装置,其特征在于,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由处理器执行以实现如权利要求1至6任一所述的方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器执行以实现如权利要求1至6任一所述的方法。
CN202211495756.9A 2022-11-28 2022-11-28 一种图数据库存储的实现方法、装置及存储介质 Active CN115544321B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211495756.9A CN115544321B (zh) 2022-11-28 2022-11-28 一种图数据库存储的实现方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211495756.9A CN115544321B (zh) 2022-11-28 2022-11-28 一种图数据库存储的实现方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN115544321A CN115544321A (zh) 2022-12-30
CN115544321B true CN115544321B (zh) 2023-03-21

Family

ID=84721840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211495756.9A Active CN115544321B (zh) 2022-11-28 2022-11-28 一种图数据库存储的实现方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115544321B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463346A (zh) * 2020-12-31 2021-03-09 哈尔滨工业大学(深圳) 一种基于划分调度的dag任务的启发式处理器划分方法、系统及存储介质
CN113449153A (zh) * 2021-06-28 2021-09-28 湖南大学 索引构建方法、装置、计算机设备和存储介质
CN113778338A (zh) * 2021-09-13 2021-12-10 北京东方金信科技股份有限公司 分布式存储数据读取效率优化方法、系统、设备和介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8538929B2 (en) * 2011-07-07 2013-09-17 International Business Machines Corporation Archiving de-duplicated data on tape storage media using graph partitions
CN102999519B (zh) * 2011-09-15 2017-05-17 上海盛付通电子商务有限公司 一种数据库的读写方法及系统
CN111061431B (zh) * 2019-11-28 2023-06-23 曙光信息产业股份有限公司 一种分布式存储方法、服务器及客户端
CN112363979B (zh) * 2020-09-18 2023-08-04 杭州欧若数网科技有限公司 一种基于图数据库的分布式索引方法和系统
CN112015820A (zh) * 2020-09-01 2020-12-01 杭州欧若数网科技有限公司 分布式图数据库实现的方法、系统、电子装置和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463346A (zh) * 2020-12-31 2021-03-09 哈尔滨工业大学(深圳) 一种基于划分调度的dag任务的启发式处理器划分方法、系统及存储介质
CN113449153A (zh) * 2021-06-28 2021-09-28 湖南大学 索引构建方法、装置、计算机设备和存储介质
CN113778338A (zh) * 2021-09-13 2021-12-10 北京东方金信科技股份有限公司 分布式存储数据读取效率优化方法、系统、设备和介质

Also Published As

Publication number Publication date
CN115544321A (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
CN110674154B (zh) 一种基于Spark的对Hive中数据进行插入、更新和删除的方法
US11726984B2 (en) Data redistribution method and apparatus, and database cluster
CN110633378A (zh) 一种支持超大规模关系网络的图数据库构建方法
CN108959510B (zh) 一种分布式数据库的分区级连接方法和装置
CN106446044B (zh) 存储空间回收方法及装置
US20240061712A1 (en) Method, apparatus, and system for creating training task on ai training platform, and medium
CN104111958A (zh) 一种数据查询方法及装置
CN110543495A (zh) 游标遍历存储方法及装置
CN104423982A (zh) 请求的处理方法和处理设备
CN111723161A (zh) 一种数据处理方法、装置及设备
US8793234B2 (en) Database management method
CN110515979B (zh) 数据查询方法、装置、设备和存储介质
CN112286907A (zh) 一种数据库配置方法、装置、电子设备和可读存储介质
WO2016175880A1 (en) Merging incoming data in a database
CN113051102A (zh) 文件备份方法、装置、系统、存储介质和计算机设备
CN109271247A (zh) 内存优化方法、装置、计算机装置以及存储介质
CN102724301B (zh) 云数据库系统以及云数据读写处理方法、设备
CN115544321B (zh) 一种图数据库存储的实现方法、装置及存储介质
WO2024016789A1 (zh) 日志数据查询方法、装置、设备和介质
WO2024021808A1 (zh) 数据查询请求的处理方法、装置、设备及存储介质
CN112527900A (zh) 一种数据库读多副本一致性的方法、装置、设备及介质
CN117111856A (zh) 一种数据湖数据处理方法、装置、系统、设备及介质
WO2023066222A1 (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN111752941A (zh) 一种数据存储、访问方法、装置、服务器及存储介质
CN113268483B (zh) 请求处理方法和装置、电子设备和存储介质

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
GR01 Patent grant
GR01 Patent grant