CN114661818A - 图数据库中集群间数据实时同步的方法、系统和介质 - Google Patents
图数据库中集群间数据实时同步的方法、系统和介质 Download PDFInfo
- Publication number
- CN114661818A CN114661818A CN202210267788.7A CN202210267788A CN114661818A CN 114661818 A CN114661818 A CN 114661818A CN 202210267788 A CN202210267788 A CN 202210267788A CN 114661818 A CN114661818 A CN 114661818A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- cluster
- log
- graph space
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- 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
Abstract
本申请涉及一种图数据库中集群间数据实时同步的方法、系统和介质,其中,该方法包括:通过在主集群上启动监听器节点,创建学习者副本并加入主集群节点的数据分片所在的raft组中;通过监听器节点实时读取并处理主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到管道节点,并记录日志ID;通过管道节点将图空间数据处理后发送到从集群节点,基于raft的一致性原理,完成图空间数据在从集群的数据分片间的同步。通过本申请,解决了如何在图数据库中保证数据可靠性和可用性的问题,有效地保证了集群间数据的一致性。
Description
技术领域
本申请涉及图数据库领域,特别是涉及一种图数据库中集群间数据实时同步的方法、系统和介质。
背景技术
随着大数据和人工智能的迅猛发展,超大规模关系网络逐步在社交推荐、风控、物联网、区块链和安防等领域被广泛使用,分布式图数据库作为所有这些应用的技术基石之一,其需要处理的数据量成几何状增长。对于容纳千亿个顶点和万亿条边的图数据库集群而言,要实时确保数据的高可用就必须构建备用集群,并且保证主备集群间数据的实时同步。
因为关系网络的数据是实时变化的,如何在拥有庞大数据量的集群间进行实时数据同步,既要全量数据的同步,也要增量数据的实时同步,是每个图数据库必须要面对的问题。
目前针对相关技术中如何在图数据库中保证数据可靠性和可用性的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种图数据库中集群间数据实时同步的方法、系统和介质,以至少解决相关技术中如何在图数据库中保证数据可靠性和可用性的问题。
第一方面,本申请实施例提供了一种图数据库中集群间数据实时同步的方法,所述方法包括:
在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中;
通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID;
通过所述管道节点将所述图空间数据处理后发送到从集群节点;
基于raft的一致性原理,完成所述图空间数据在所述从集群的数据分片间的同步。
在其中一些实施例中,所述主集群节点包括元数据管理节点和存储节点;
在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中包括:
若所述主集群节点为元数据管理节点,则在主集群上启动元监听器节点,创建学习者副本并加入所述元数据管理节点的数据分片所在的raft组中,其中,所述数据分片存储图空间的元数据;
若所述主集群节点为存储节点,则在主集群上启动存储监听器节点,创建学习者副本并加入所述存储节点的数据分片所在的raft组中,其中,所述数据分片存储图空间的属性数据。
在其中一些实施例中,若所述主集群节点为元数据管理节点;
通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID包括:
通过元监听器节点中的学习者副本实时读取所述元数据管理节点中数据分片的变更数据日志,判断所述变更数据日志是否为标签数据、边数据和索引数据的日志,若是,则获取所述变更数据日志对应的图空间ID,将所述变更数据日志写入所述图空间ID下的日志文件中;
当所述变更数据日志读取处理完后,获取对应要同步的从集群上的管道节点的地址,遍历所述图空间ID对应的目录,将要同步的所述目录下日志文件对应的图空间的元数据发送到所述管道节点,并记录最后的日志ID。
在其中一些实施例中,若所述主集群节点为存储节点;
通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID包括:
通过存储监听器节点中的学习者副本实时读取所述存储节点中数据分片的变更数据日志,将存在的变更数据日志加入到日志集合中;
当所述变更数据日志读取处理完后,获取对应要同步的从集群上的管道节点的地址,将要同步的所述日志集合中日志对应的图空间的属性数据发送到所述管道节点,并记录最后的日志ID。
在其中一些实施例中,在通过所述管道节点将所述图空间数据处理后发送到从集群节点之前,所述方法还包括:
通过所述管道节点接收所述图空间数据,根据所述从集群上要同步的图空间ID和所述日志ID,判断所述图空间数据的接收是否合法。
在其中一些实施例中,通过所述管道节点将所述图空间数据处理后发送到从集群节点包括:
通过所述管道节点遍历所述从集群上要同步的图空间目录,所述图空间目录中每个图空间生成一个任务放到任务管理队列中;
在任务的执行中,根据所述任务对应的数据分片的信息,生成多个子任务,其中,一个数据分片对应一个子任务;
根据并行度,并行执行所述子任务,直到所述任务管理队列中的任务全部执行完成,即将所述图空间数据发送到从集群节点。
在其中一些实施例中,基于raft的一致性原理,完成所述图空间数据在所述从集群的数据分片间的同步包括:
在所述从集群的领导者副本同步完所述图空间数据后,基于raft的一致性原理,通过所述从集群节点将所述图空间数据同步到与所述领导者副本同一raft组的跟随者副本中。
在其中一些实施例中,图空间为主集群与从集群间数据同步的基本单位,需要进行数据同步的图空间在所述主集群中可读可写,在所述从集群中只读。
第二方面,本申请实施例提供了一种图数据库中集群间数据实时同步的系统,所述系统包括主集群模块和从集群模块;
所述主集群模块用于在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中;
所述主集群模块用于通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID;
所述从集群模块用于通过所述管道节点将所述图空间数据处理后发送到从集群节点;基于raft的一致性原理,完成所述图空间数据在所述从集群的数据分片间的同步。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的图数据库中集群间数据实时同步的方法。
相比于相关技术,本申请实施例提供的一种图数据库中集群间数据实时同步的方法、系统和介质,通过在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中;通过监听器节点实时读取并处理主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到管道节点,并记录日志ID;通过管道节点将图空间数据处理后发送到从集群节点,基于raft的一致性原理,完成图空间数据在从集群的数据分片间的同步。解决了如何在图数据库中保证数据可靠性和可用性的问题,实现了图数据库中实时变化的关系网络数据在集群间的实时数据同步,有效地保证了数据的一致性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的Nebula Graph集群的架构示意图;
图2是根据本申请实施例提供的图数据库中集群间数据实时同步方法的步骤流程图;
图3是根据本申请实施例的主集群和从集群的架构示意图;
图4是根据本申请实施例的元数据管理节点中读取处理日志的示意图;
图5是根据本申请实施例提供的图数据库中集群间数据实时同步系统的结构框图;
图6是根据本申请实施例的电子设备的内部结构示意图。
附图说明:51、主集群模块;52、从集群模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在介绍具体的实施例之前,需先对本发明实施例所涉及的专业术语进行解释:
在Nebula Graph分布式图数据库中,构成属性图的核心要素有两个:点(vertex)和边(edge)。
点(vertex):点由标签(tag)和对应tag的属性组成,tag代表点的类型,属性代表tag拥有的一种或多种属性。一个点至少有一种类型,即标签,也可以有多种类型。tag有一组对应的属性,称为schema。
边(edge):两个点的标签的关系。此处的边指有向边。边由类型和属性组成。类型来标识具体的边,正数表示出边,负数表示入边。edge的一组属性称为schema。
索引(index):是依据tag或edge一列或多列的属性值进行排序的一种结构,使用索引可快速访问对应tag或edge中的特定数据。
图空间(space):图空间是相互独立的实体,tag、edge、tag index、edge index必须依存于某个空间才能存在。一个图空间下可以有任意多个tag、edge,以及它们的index。
数据分片(partition):Nebula Graph的物理存储分区,一个space可以有多个数据分片,每个数据分片拥有多个副本,如领导者(leader)、跟随者(follower)和学习者(learner),并分布在不同节点上,通过raft分布式协议保证数据分片各个副本的一致性。
raft:是一种去中心化的、高可用的共识算法,在工程上使用比较广泛。raft中的leader可读可写;follower当前只读;learner与follower一样,但不能参与leader的投票选举。
元数据管理节点(meta):管理元数据的节点。
存储节点(storage):存储数据的节点。
计算节点(graph):一种无状态的,用于计算的节点。
监听器节点(listener):各个partition的raft group中的learner存在的节点。meta元数据的listener节点称为meta listener节点,storage属性数据的listener节点称为storage listener节点。
管道节点(drainer):在从集群上,用于集群间数据同步的节点。
Nebula Graph集群:由计算节点、元数据管理节点和存储节点组成的统一对外提供服务的单元。
本申请实施例提供了一种图数据库中集群间数据实时同步的方法,图1是根据本申请实施例的Nebula Graph集群的架构示意图,如图1所示,由1个graph节点,3个meta节点,3个storage节点组成的一个比较简单的nebula graph集群。
其中,元数据存储在meta节点的partition 0上,并且raft group里面由3个副本来保证元数据数据的高可用,因此有3个meta节点。
属性数据存储在storage节点上,且有3个partition,每个partition有3副本,每个storage节点有一个partition的leader(partition 1的leader在storage 1上、partition 2的leader在storage 2上、partition 3的leader在storage 3上)。不同机器上的同一个partition的副本构成了一个raft group。
图2是根据本申请实施例提供的图数据库中集群间数据实时同步方法的步骤流程图,如图2所示,该方法包括以下步骤S202至步骤S206。
图3是根据本申请实施例的主集群和从集群的架构示意图,如图3所示,主集群节点包括计算节点(graph)、元数据管理节点(meta)和存储节点(storage),以及监听器节点(listener);从集群节点包括计算节点(graph)、元数据管理节点(meta)和存储节点(storage),以及管道节点(drainer);
需要说明的是,主集群与从集群间数据同步的基本单位是图空间(space)。如主集群含有spaceA和spaceB,可以将spaceA的数据同步到从集群,且以space为单位时,主集群不需要知道从集群中这个space的各个partition的分布情况。对于要同步的某个space,两个集群中partition数目,机器数和副本数都可以不同。
通过设置space级别的变量,来控制主从集群中要同步的space的读写模式。主集群中要同步的space在console端可读可写,从集群中该space在console端只读。此时从集群中该space只能通过数据同步的方式写入数据。
由此可见,若建立了主集群到从集群的某个space的同步关系,则主集群中该space的任何写入,包括元数据和数据的写入,都会实时的同步到从集群。因此集群间数据的实时同步是一个实时动态的捕获变更数据的过程。
步骤S202,在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中;
具体地,若主集群节点为元数据管理节点(meta),则在主集群上启动元监听器节点(meta listener),创建学习者副本(learner)并加入元数据管理节点的数据分片所在的raft组中,其中,数据分片存储所有图空间的元数据;
优选地,元数据都存储在元数据管理节点(meta),元数据只有一个partition,即元数据只有一个raftgroup,该partition存储了所有space的元数据。当meta listener启动后,会创建一个learner,加入到meta的partition所在的raft group里面,根据raft的一致性原理,meta listener节点上的learner副本,这个副本将要实时同步所有要同步的space的元数据信息。
具体地,若主集群节点为存储节点(storage),则在主集群上启动存储监听器节点(storage listener),创建学习者副本(learner)并加入存储节点的数据分片所在的raft组中,其中,数据分片存储某个图空间的部分属性数据。
优选地,属性数据都存储在存储节点(storage),属性数据有多个partition,即属性数据有多个raft group,多个partition存储了一个space的属性数据。当某个同步的space涉及多个partition时,启动多个storage listener,对应创建多个learner,分别加入到该space所涉及到的partition所在的raft group里面
步骤S204,通过监听器节点实时读取并处理主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到管道节点,并记录日志ID;
具体地,若主集群节点为元数据管理节点(meta);
通过元监听器节点中的学习者副本实时读取元数据管理节点中数据分片的变更数据日志,判断变更数据日志是否为标签数据、边数据和索引数据的日志,若是,则获取变更数据日志对应的图空间ID,将变更数据日志写入图空间ID下的日志文件中;
当变更数据日志读取处理完后,遍历图空间ID对应的目录,每个目录代表一个图空间的数据,判断每个图空间是否需要同步,若该图空间需要同步,获取该图空间对应的从集群管道节点的地址,将目录下日志文件对应的图空间的元数据发送到管道节点,并记录最后的日志ID。
优选地,图4是根据本申请实施例的元数据管理节点中读取处理日志的示意图,如图4所示,meta listener节点上的learner中的线程从上次处理完的LogId(记为logId1)的下个值开始读取log,如果该log不存在,则退出;如果log存在,则解析该log,判断当前log是否是tag、edge、index数据的日志。
如果当前log不是tag、edge、index数据的日志,则忽略,读取下一条log,进行同样的处理。
如果当前log是tag、edge、index数据的日志,获取该log的spaceId,将该log写入对应spaceId目录名(如图4中的s1、s2、…、s6)下的日志文件中。并更新LogId(logId1)到最新值。
进一步地,当所有log处理完后,遍历所有spaceId对应的目录,每个目录代表一个图空间的数据,判断每个图空间是否需要同步,若该图空间需要同步,获取该图空间对应的从集群管道节点的地址和从集群的space name,将目录下日志文件发送到从集群的drainer节点,并且记录最后发送成功的LogId。
具体地,若主集群节点为存储节点(storage);
通过存储监听器节点中的学习者副本实时读取存储节点中数据分片的变更数据日志,将存在的变更数据日志加入到日志集合中;
当变更数据日志读取处理完后,获取对应要同步的从集群上的管道节点的地址,将日志集合中日志对应的图空间的属性数据发送到管道节点,并记录最后的日志ID。
优选地,storage listener节点上的learner中的线程从上次应用完的LogId(记为logId2)的下个值开始读取log,如果该log不存在,则退出;如果log存在的话,将log加入到log集合中。
当log集合中达到指定数量或者log都处理完,根据该space要同步到的从集群的space name、drainer地址将log集合的数据发送到从集群的drainer节点,并且记录最后发送成功的LogId。
步骤S206,通过管道节点将图空间数据处理后发送到从集群节点;
具体地,通过管道节点遍历所有的图空间目录,图空间目录中每个图空间生成一个任务放到任务管理队列中;
在任务的执行中,根据任务对应的数据分片的信息,生成多个子任务,其中,一个数据分片对应一个子任务;
根据并行度,并行执行子任务,直到任务管理队列中的任务全部执行完成,即将图空间数据发送到从集群节点。
优选地,如果主从集群中要同步的space的partitions的个数不一样,drainer在往从集群发送数据时,需要对该space目录下的每个partition的数据重新分片,并计算出对应的新partitionId以替换旧partitionId,生成新的log数据,发送到从集群。
进一步地,对于每条log数据,检查数据中schema的合法性。如果数据中的schema版本比从集群中对应的schema版本高,则本次不发送这个数据,下次再发送。
步骤S208,基于raft的一致性原理,完成图空间数据在从集群的数据分片间的同步。
具体地,在从集群的领导者副本同步完图空间数据后,基于raft的一致性原理,通过从集群节点将图空间数据同步到与领导者副本同一raft组的跟随者副本中。
通过本申请实施例中的步骤S202至步骤S208,解决了如何在图数据库中保证数据可靠性和可用性的问题,实现了图数据库中实时变化的关系网络数据在集群间的实时数据同步,有效地保证了数据的一致性。
在其中一些实施例中,在步骤S206,通过管道节点将图空间数据处理后发送到从集群节点之前,该方法还包括:
通过管道节点接收图空间数据,根据从集群上要同步的图空间ID和日志ID,判断图空间数据的接收是否合法。
优选地,drainer节点接收到主集群meta listener或storage listener发送来的某个space的数据,然后根据要同步的从集群的space name,来获取从集群对应的spaceId。
drainer节点根据该spaceId和partition最后接收的LogId来判断这次接收数据的合法性。
进一步地,如果数据合法,执行上述步骤S206,即将数据写入到该spaceId为目录名的partition中。并更新接收LogId到的最新LogId,返回成功。
如果数据非法,根据spaceId和partition最后接收的LogId来返回下次期望接收log的起始LogId,并返回失败。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了一种图数据库中集群间数据实时同步的系统,图5是根据本申请实施例提供的图数据库中集群间数据实时同步系统的结构框图,如图5所示,该系统包括主集群模块51和从集群模块52;
主集群模块51用于在主集群上启动监听器节点,创建学习者副本并加入主集群节点的数据分片所在的raft组中;
主集群模块51用于通过监听器节点实时读取并处理主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到管道节点,并记录日志ID;
从集群模块52用于通过管道节点将图空间数据发送到从集群节点,基于raft的一致性原理,完成图空间数据在从集群的数据分片间的同步。
通过本申请实施例中的主集群模块51和从集群模块52,解决了如何在图数据库中保证数据可靠性和可用性的问题,实现了图数据库中实时变化的关系网络数据在集群间的实时数据同步,有效地保证了数据的一致性。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的图数据库中集群间数据实时同步的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种图数据库中集群间数据实时同步的方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图数据库中集群间数据实时同步的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图6是根据本申请实施例的电子设备的内部结构示意图,如图6所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图6所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种图数据库中集群间数据实时同步的方法,数据库用于存储数据。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种图数据库中集群间数据实时同步的方法,其特征在于,所述方法包括:
在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中;
通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID;
通过所述管道节点将所述图空间数据处理后发送到从集群节点;
基于raft的一致性原理,完成所述图空间数据在所述从集群的数据分片间的同步。
2.根据权利要求1所述的方法,其特征在于,所述主集群节点包括元数据管理节点和存储节点;
在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中包括:
若所述主集群节点为元数据管理节点,则在主集群上启动元监听器节点,创建学习者副本并加入所述元数据管理节点的数据分片所在的raft组中,其中,所述数据分片存储图空间的元数据;
若所述主集群节点为存储节点,则在主集群上启动存储监听器节点,创建学习者副本并加入所述存储节点的数据分片所在的raft组中,其中,所述数据分片存储图空间的属性数据。
3.根据权利要求1或2所述的方法,其特征在于,若所述主集群节点为元数据管理节点;
通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID包括:
通过元监听器节点中的学习者副本实时读取所述元数据管理节点中数据分片的变更数据日志,判断所述变更数据日志是否为标签数据、边数据和索引数据的日志,若是,则获取所述变更数据日志对应的图空间ID,将所述变更数据日志写入所述图空间ID下的日志文件中;
当所述变更数据日志读取处理完后,获取对应要同步的从集群上的管道节点的地址,遍历所述图空间ID对应的目录,将要同步的所述目录下日志文件对应的图空间的元数据发送到所述管道节点,并记录最后的日志ID。
4.根据权利要求1或2所述的方法,其特征在于,若所述主集群节点为存储节点;
通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID包括:
通过存储监听器节点中的学习者副本实时读取所述存储节点中数据分片的变更数据日志,将存在的变更数据日志加入到日志集合中;
当所述变更数据日志读取处理完后,获取对应要同步的从集群上的管道节点的地址,将要同步的所述日志集合中日志对应的图空间的属性数据发送到所述管道节点,并记录最后的日志ID。
5.根据权利要求1所述的方法,其特征在于,在通过所述管道节点将所述图空间数据处理后发送到从集群节点之前,所述方法还包括:
通过所述管道节点接收所述图空间数据,根据所述从集群上要同步的图空间ID和所述日志ID,判断所述图空间数据的接收是否合法。
6.根据权利要求1所述的方法,其特征在于,通过所述管道节点将所述图空间数据处理后发送到从集群节点包括:
通过所述管道节点遍历得到所述从集群上要同步的图空间目录,所述图空间目录中每个图空间生成一个任务放到任务管理队列中;
在任务的执行中,根据所述任务对应的数据分片的信息,生成多个子任务,其中,一个数据分片对应一个子任务;
根据并行度,并行执行所述子任务,直到所述任务管理队列中的任务全部执行完成,即将所述图空间数据发送到从集群节点。
7.根据权利要求1或6所述的方法,其特征在于,基于raft的一致性原理,完成所述图空间数据在所述从集群的数据分片间的同步包括:
在所述从集群的领导者副本同步完所述图空间数据后,基于raft的一致性原理,通过所述从集群节点将所述图空间数据同步到与所述领导者副本同一raft组的跟随者副本中。
8.根据权利要求1所述的方法,其特征在于,图空间为主集群与从集群间数据同步的基本单位,需要进行数据同步的图空间在所述主集群中可读可写,在所述从集群中只读。
9.一种图数据库中集群间数据实时同步的系统,其特征在于,所述系统包括主集群模块和从集群模块;
所述主集群模块用于在主集群上启动监听器节点,创建学习者副本并加入主集群节点中对应数据分片所在的raft组中;
所述主集群模块用于通过所述监听器节点实时读取并处理所述主集群节点的变更数据日志,获取对应的图空间信息和从集群上的管道节点的地址,将要同步的变更数据日志对应的图空间数据发送到所述管道节点,并记录日志ID;
所述从集群模块用于通过所述管道节点将所述图空间数据处理后发送到从集群节点;基于raft的一致性原理,完成所述图空间数据在所述从集群的数据分片间的同步。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8中任一项所述的图数据库中集群间数据实时同步的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210267788.7A CN114661818B (zh) | 2022-03-17 | 2022-03-17 | 图数据库中集群间数据实时同步的方法、系统和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210267788.7A CN114661818B (zh) | 2022-03-17 | 2022-03-17 | 图数据库中集群间数据实时同步的方法、系统和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114661818A true CN114661818A (zh) | 2022-06-24 |
CN114661818B CN114661818B (zh) | 2023-03-31 |
Family
ID=82029900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210267788.7A Active CN114661818B (zh) | 2022-03-17 | 2022-03-17 | 图数据库中集群间数据实时同步的方法、系统和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661818B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544172A (zh) * | 2022-11-28 | 2022-12-30 | 杭州欧若数网科技有限公司 | 一种一主多从的集群间数据实时同步的方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126583A (zh) * | 2016-06-20 | 2016-11-16 | 环球大数据科技有限公司 | 一种分布式图数据库的集群强一致性处理方法及系统 |
CN106484565A (zh) * | 2016-09-22 | 2017-03-08 | 华为数字技术(成都)有限公司 | 多数据中心间的数据同步方法及相关设备 |
CN110795503A (zh) * | 2019-10-18 | 2020-02-14 | 北京达佳互联信息技术有限公司 | 分布式存储系统的多集群数据同步方法及相关装置 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112363979A (zh) * | 2020-09-18 | 2021-02-12 | 杭州欧若数网科技有限公司 | 一种基于图数据库的分布式索引方法和系统 |
CN113535430A (zh) * | 2021-07-16 | 2021-10-22 | 深圳华锐金融技术股份有限公司 | 应用数据读写分离方法、装置、计算机设备和存储介质 |
CN113778990A (zh) * | 2021-09-01 | 2021-12-10 | 百融至信(北京)征信有限公司 | 一种分布式图数据库的构建方法及系统 |
-
2022
- 2022-03-17 CN CN202210267788.7A patent/CN114661818B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126583A (zh) * | 2016-06-20 | 2016-11-16 | 环球大数据科技有限公司 | 一种分布式图数据库的集群强一致性处理方法及系统 |
CN106484565A (zh) * | 2016-09-22 | 2017-03-08 | 华为数字技术(成都)有限公司 | 多数据中心间的数据同步方法及相关设备 |
CN110795503A (zh) * | 2019-10-18 | 2020-02-14 | 北京达佳互联信息技术有限公司 | 分布式存储系统的多集群数据同步方法及相关装置 |
CN111858097A (zh) * | 2020-07-22 | 2020-10-30 | 安徽华典大数据科技有限公司 | 分布式数据库系统、数据库访问方法 |
CN112363979A (zh) * | 2020-09-18 | 2021-02-12 | 杭州欧若数网科技有限公司 | 一种基于图数据库的分布式索引方法和系统 |
CN113535430A (zh) * | 2021-07-16 | 2021-10-22 | 深圳华锐金融技术股份有限公司 | 应用数据读写分离方法、装置、计算机设备和存储介质 |
CN113778990A (zh) * | 2021-09-01 | 2021-12-10 | 百融至信(北京)征信有限公司 | 一种分布式图数据库的构建方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544172A (zh) * | 2022-11-28 | 2022-12-30 | 杭州欧若数网科技有限公司 | 一种一主多从的集群间数据实时同步的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114661818B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896102B2 (en) | Implementing secure communication in a distributed computing system | |
US10375167B2 (en) | Low latency RDMA-based distributed storage | |
US8972345B1 (en) | Modifying data structures in distributed file systems | |
EP3262512B1 (en) | Application cache replication to secondary application(s) | |
US10310904B2 (en) | Distributed technique for allocating long-lived jobs among worker processes | |
US11728976B1 (en) | Systems and methods for efficiently serving blockchain requests using an optimized cache | |
US10515228B2 (en) | Commit and rollback of data streams provided by partially trusted entities | |
CN111538719B (zh) | 数据迁移方法、装置、设备及计算机存储介质 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
Waqas et al. | Transaction management techniques and practices in current cloud computing environments: A survey | |
CN114661818B (zh) | 图数据库中集群间数据实时同步的方法、系统和介质 | |
US11397750B1 (en) | Automated conflict resolution and synchronization of objects | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN109726211B (zh) | 一种分布式时序数据库 | |
CN113254424B (zh) | 数据服务迁移方法、装置及设备 | |
CN115544172A (zh) | 一种一主多从的集群间数据实时同步的方法和系统 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
JP6626976B2 (ja) | 高スループット、高信頼性のデータ処理システム | |
CN109710698B (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN113793148B (zh) | 联盟链的区块同步方法、装置、节点和存储介质 | |
WO2021189311A1 (en) | Read operation in object storage system using enhanced meta structure | |
Hammood | A comparison of NoSQL database systems: A study on MongoDB, apache HBase, and apache Cassandra | |
WO2021189308A1 (en) | Delete operation in object storage system using enhanced meta structure |
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 |