CN112817992B - 执行更改任务的方法、装置、电子设备以及可读存储介质 - Google Patents

执行更改任务的方法、装置、电子设备以及可读存储介质 Download PDF

Info

Publication number
CN112817992B
CN112817992B CN202110129933.0A CN202110129933A CN112817992B CN 112817992 B CN112817992 B CN 112817992B CN 202110129933 A CN202110129933 A CN 202110129933A CN 112817992 B CN112817992 B CN 112817992B
Authority
CN
China
Prior art keywords
task
storage node
change
receiving
asynchronous
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
CN202110129933.0A
Other languages
English (en)
Other versions
CN112817992A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110129933.0A priority Critical patent/CN112817992B/zh
Publication of CN112817992A publication Critical patent/CN112817992A/zh
Priority to US17/498,076 priority patent/US20220244990A1/en
Priority to EP21202610.8A priority patent/EP4036751A1/en
Priority to KR1020220004144A priority patent/KR20220110080A/ko
Priority to JP2022005542A priority patent/JP7367287B2/ja
Application granted granted Critical
Publication of CN112817992B publication Critical patent/CN112817992B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

本申请公开了一种执行更改任务的方法、装置、电子设备以及可读存储介质,涉及深度学习、知识图谱、大数据技术领域。包括:配置中心接收并执行更改任务,将更改后的状态数据和/或配置数据存储在本地;根据更改后的状态数据和/或配置数据生成变更任务,将变更任务分别添加到对应各存储节点的异步任务队列中;接收存储节点发送的心跳包;从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点。还包括:存储节点向配置中心发送心跳包;接收配置中心发送的心跳包的返回消息,所述心跳包的返回消息中包含变更任务;将变更任务添加到异步任务接收队列中以按序执行。

Description

执行更改任务的方法、装置、电子设备以及可读存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及深度学习、知识图谱、大数据技术领域中的一种执行更改任务的方法、装置、电子设备以及可读存储介质。
背景技术
在分布式图数据库架构中,包含配置中心、存储集群与计算集群,存储集群中包含存储节点,计算集群中包含计算节点。
数据分散存放在存储集群中,存储集群的状态和/或配置的变更都需要通过配置中心将变更任务分发给存储节点以进行执行。
发明内容
本申请提供了一种执行更改任务的方法、装置、电子设备以及可读存储介质,以确保配置中心所生成的变更任务能够被存储节点按序执行,提升任务分发的准确性与更改任务的执行效率。
根据本申请的第一方面,提供了一种执行更改任务的方法,所述方法在配置中心中执行,包括:接收并执行用户发送的更改任务,将更改后的状态数据和/或配置数据存储在本地;根据所述更改后的状态数据和/或配置数据生成变更任务,并将所述变更任务分别添加到由配置中心预先设置的对应各存储节点的异步任务队列中;接收存储节点发送的心跳包;从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行。
根据本申请的第二方面,提供了一种执行更改任务的方法,所述方法在存储节点中执行,包括:向配置中心发送心跳包;接收所述配置中心发送的心跳包的返回消息,所述心跳包的返回消息中包含变更任务,所述变更任务是由所述配置中心根据更改后的状态数据和/或配置数据生成的;将所述变更任务添加到由存储节点预先设置的异步任务接收队列中以按序执行。
根据本申请的第三方面,提供了一种执行更改任务的装置,所述装置位于配置中心,包括:更改单元,用于接收并执行用户发送的更改任务,将更改后的状态数据和/或配置数据存储在本地;生成单元,用于根据所述更改后的状态数据和/或配置数据生成变更任务,并将所述变更任务分别添加到由配置中心预先设置的对应各存储节点的异步任务队列中;第一接收单元,用于接收存储节点发送的心跳包;处理单元,用于从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行。
根据本申请的第四方面,提供了一种执行更改任务的装置,所述装置位于存储节点,包括:发送单元,用于向配置中心发送心跳包;第二接收单元,用于接收所述配置中心发送的心跳包的返回消息,所述心跳包的返回消息中包含变更任务,所述变更任务是由所述配置中心根据更改后的状态数据和/或配置数据生成的;执行单元,用于将所述变更任务添加到由存储节点预先设置的异步任务接收队列中以按序执行。
根据本申请的第五方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据本申请的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。
根据本申请的第七方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
由以上技术方案可以看出,本申请通过在配置中心设置异步任务队列与在存储节点设置异步任务接收队列的方式,能够确保配置中心所生成的变更任务能够被存储节点按序执行,从而提升任务分发的准确性与更改任务的执行效率。
应当理解,本部分分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的示意图;
图2是根据本申请第二实施例的示意图;
图3是根据本申请第三实施例的示意图;
图4是根据本申请第四实施例的示意图;
图5是用来实现本申请实施例的执行更改任务的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和机构的描述。
图1是根据本申请第一实施例的示意图。如图1所示,本实施例的执行更改任务的方法在配置中心中执行,具体可以包括如下步骤:
S101、接收并执行用户发送的更改任务,将更改后的状态数据和/或配置数据存储在本地;
S102、根据所述更改后的状态数据和/或配置数据生成变更任务,并将所述变更任务分别添加到由配置中心预先设置的对应各存储节点的异步任务队列中;
S103、接收存储节点发送的心跳包;
S104、从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行。
本实施例的执行更改任务的方法的执行主体为配置中心,该配置中心位于分布式图数据库中,用于管理分布式图数据库中存储集群所包含的存储节点以执行相应的任务,通过在配置中心设置异步任务队列与在存储节点设置异步任务接收队列的方式,确保了配置中心根据更改命令所生成的变更任务能够被存储节点按序执行,提升了任务分发的准确性。
本实施例中的配置中心在执行S101所接收到用户发送的更改任务,可以为用户发出的更改存储集群的状态和/或配置对应的命令,执行所接收的更改命令,即可完成对于存储集群的状态数据和/或配置数据的变更。
本实施例中的配置中心在执行S101对所接收的更改任务进行执行之后,将更改后的存储集群的状态数据和/或配置数据存储在本地,即配置中心会记录存储集群最新的状态数据与配置数据。
另外,若本实施例中的配置中心未能够成功地执行更改任务,则配置中心还可以向用户返回更改失败的消息,以提示用户更改任务执行失败。
本实施例中的配置中心在执行S101将更改后的状态数据和/或配置数据存储在本地之后,执行S102根据更改后的状态数据和/或配置数据生成变更任务,并将所生成的变更任务分别添加到对应各存储节点的异步任务队列中;其中,对应各存储节点的异步任务队列是由配置中心预先设置的。
另外,本实施例中的配置中心会预先针对每个存储节点设置一个异步任务队列,即不同的异步任务队列对应于不同的存储节点。
可以理解的是,本实施例中的配置中心所生成的变更任务,用于各存储节点改变当前的状态和/或配置,以使得各存储节点更改后的状态和/或配置符合配置中心所接收的更改任务。
举例来说,若配置中心接收的更改任务为变更主节点的任务,若该更改任务具体为将原先是主节点的存储节点A变更为从节点,将原先是从节点的存储节点B变更为主节点,则配置中心在将更改后的状态数据(主节点为存储节点B,从节点为存储节点A)存储在本地之后,根据更改后的状态数据生成变更任务(将存储节点B变更为主节点,将存储节点A变更为从节点)来分发至各存储节点,以实现对于各存储节点的状态变更。
本实施例中的配置中心在执行S102将所生成的变更任务分别添加到对应各存储节点的异步任务队列中之后,执行S103接收存储节点发送的心跳包。也就是说,本实施例中的配置中心向存储节点发送变更任务,是由存储节点向配置中心发送心跳包所触发的,配置中心仅向发送心跳包的存储节点发送变更任务。
本实施例中的配置中心执行S103所接收到的心跳包,可以为存储节点周期性发送的心跳包,用于存储节点通知配置中心自身的状态。
本实施例中的配置中心在执行S103接收到存储节点发送的心跳包之后,执行S104从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行。
由于存储节点会周期性地向配置中心发送心跳包,配置中心接收各心跳包时会存在时间间隔,而在该时间间隔内,配置中心可能会生成多个变更任务。由于多个变更任务中会存在具有相同任务类型的变更任务,因此为了提升任务分发的准确性,避免存储节点计算资源的浪费,本实施例中的配置中心在执行S104从对应该存储节点的异步任务队列中取出所添加的变更任务时,可以采用的可选实现方式为:确定对应该存储节点的异步任务队列中所添加的各变更任务的任务类型;分别从对应相同任务类型的变更任务中取出最新添加的变更任务。
另外,本实施例中的配置中心在执行S104从对应该存储节点的异步任务队列中取出所添加的变更任务时,也可以从该异步任务队列中取出所有未执行的变更任务。
本实施例中的配置中心在执行S104将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点时,可以采用的可选实现方式为:确定所取出的变更任务的任务类型;将所取出的变更任务、变更任务的任务类型添加到心跳包的返回消息中发送至该存储节点。
在实际场景中存在由于存储节点自身挂掉、存储节点出现网络错误而未能够完成变更任务,因此会导致存储集群会进入状态不一致的情况。
为了避免出现存储集群出现状态不一致的情况,本实施例中的配置中心还可以执行以下内容:生成报告任务;将所生成的报告任务添加到对应各存储节点的异步任务队列中,以发送至各存储节点,使得各存储节点收集节点的状态数据和/或配置数据;接收各存储节点发送的状态数据和/或配置数据;将各存储节点发送的状态数据和/或配置数据与本地存储的状态数据和/或配置数据进行比较,生成对应各存储节点的补偿任务并添加到对应各存储节点的异步任务队列中,以发送至各存储节点,使得各存储节点执行相应的补偿任务来保证存储集群中状态和/或配置的一致性。
其中,本实施例中的配置中心在生成报告任务时,可以为在存储节点发送第一个心跳包时生成报告任务并添加至异步任务队列,也可以周期性地生成报告任务添加到异步任务队列;而配置中心在向存储节点发送报告任务时,可以主动进行发送,也可以将异步任务队列中的报告任务添加到心跳包的返回消息进行发送。
也就是说,本实施例中的配置中心通过生成报告任务的方式,能够实现存储集群中各存储节点的状态和/或配置的一致性。
根据上述实施例所提供的方法,通过在配置中心设置异步任务队列与在存储节点设置异步任务接收队列的方式,确保了配置中心根据更改命令所生成的变更任务能够被存储节点按序执行,提升了任务分发的准确性,进而提升了更改命令的执行效率。
图2是根据本申请第二实施例的示意图。如图2所示,本实施例的执行更改任务的方法在存储节点中执行,具体可以包括如下步骤:
S201、向配置中心发送心跳包;
S202、接收所述配置中心发送的心跳包的返回消息,所述心跳包的返回消息中包含变更任务,所述变更任务是由所述配置中心根据更改后的状态数据和/或配置数据生成的;
S203、将所述变更任务添加到由存储节点预先设置的异步任务接收队列中以按序执行。
本实施例中的存储节点在执行S201向配置中心发送心跳包时,可以周期性地向配置中心发送心跳包,以通知配置中心自身的状态。
本实施例中的存储节点在执行S201向配置中心发送心跳包之后,执行S202接收配置中心发送的心跳包的返回消息,所接收到的心跳包的返回消息中包含变更任务。
本实施例中的存储节点在执行S202接收到配置中心发送的心跳包的返回消息之后,执行S203将变更任务添加到异步任务接收队列中以按序执行,其中,本实施例中的异步任务接收队列是由存储节点预先设置的。
可以理解的是,本实施例中的存储节点会预先设置异步任务接收队列来存放配置中心所发送的变更任务;存储节点可以仅预先设置一个异步任务接收队列,也可以根据变更任务的任务类型来设置多个异步任务接收队列,从而提高变更任务执行时的并发度。
本实施例中的存储节点在执行S203将变更任务添加到异步任务接收队列中以按序执行时,可以采用的可选实现方式为:确定变更任务的任务类型;将变更任务添加到与任务类型对应的异步任务接收队列中以按序执行,对应不同任务类型的异步任务接收队列是存储节点预先设置的。
本实施例中的存储节点还可以包含以下内容:接收到配置中心发送的报告任务之后,获取本地存储的状态数据和/或配置数据;将所获取的状态数据和/或配置数据发送至配置中心,所发送的上述数据用于配置中心进行比对,以确定存储节点中的状态和/或配置是否与配置中心的状态和/或配置相同。
本实施例中的存储节点在将所获取的状态数据和/或配置数据发送至配置中心之后,还可以包含以下内容:接收配置中心发送的补偿任务;将所接收的补偿任务添加到异步任务接收队列中以按序执行。
本实施例中的存储节点所接收的补偿任务用于存储节点更改自身与配置中心存储差别的状态数据和/或配置数据,以确保存储节点的状态和/或配置与配置中心的状态和/或相同,从而避免了存储节点由于自身原因未完成变更任务所导致的数据不同步的技术问题。
图3是根据本申请第三实施例的示意图。如图3所示,本实施例的执行更改任务的装置300位于配置中心,包括:
更改单元301、用于接收并执行用户发送的更改任务,将更改后的状态数据和/或配置数据存储在本地;
生成单元302、用于根据所述更改后的状态数据和/或配置数据生成变更任务,并将所述变更任务分别添加到由配置中心预先设置的对应各存储节点的异步任务队列中;
第一接收单元303、用于接收存储节点发送的心跳包;
处理单元304、用于从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行。
本实施例中的更改单元301所接收到的更改任务,可以为用户发出的更改存储集群的状态和/或配置的对应的命令,更改单元301执行所接收的更改任务,即可完成对于存储集群的状态数据和/或配置数据的变更。
本实施例中的更改单元301对所接收的更改任务进行执行之后,将更改后的存储集群的状态数据和/或配置数据存储在本地,即配置中心会记录存储集群最新的状态数据与配置数据。
另外,若本实施例中的更改单元301未能够成功地执行更改任务,则更改单元301还可以向用户返回更改失败的消息,以提示用户更改任务执行失败。
本实施例中的配置中心在由更改单元301将更改后的状态数据和/或配置数据存储在本地之后,由生成单元302根据更改后的状态数据和/或配置数据生成变更任务,并将所生成的变更任务分别添加到对应各存储节点的异步任务队列中,本实施例中对应各存储节点的异步任务队列是由配置中心预先设置的。
可以理解的是,本实施例中的生成单元302所生成的变更任务,用于各存储节点改变当前的状态和/或配置,以使得各存储节点更改后的状态和/或配置符合配置中心所接收的更改命令。
本实施例中的配置中心在由生成单元302在将所生成的变更任务分别添加到对应各存储节点的异步任务队列中之后,由第一接收单元303接收存储节点发送的心跳包。
本实施例中的配置中心通过第一接收单元303所接收到的心跳包,可以为存储节点周期性发送的心跳包,用于存储节点通知配置中心自身的状态。
本实施例中的配置中心在由第一接收单元303接收到存储节点发送的心跳包之后,由处理单元304从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行。
而存储节点在向配置中心发送心跳包时存在时间间隔,在该时间间隔内,配置中心可能会生成多个变更任务。由于多个变更任务中会存在具有相同任务类型的变更任务,因此为了提升任务分发的准确性,避免存储节点计算资源的浪费,本实施例中的处理单元304在从对应该存储节点的异步任务队列中取出所添加的变更任务时,可以采用的可选实现方式为:确定对应该存储节点的异步任务队列中所添加的各变更任务的任务类型;分别从对应相同任务类型的变更任务中取出最新添加的变更任务。
另外,本实施例中的处理单元304在从对应该存储节点的异步任务队列中取出所添加的变更任务时,也可以从该异步任务队列中取出所有未执行的变更任务。
本实施例中的处理单元304在将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点时,可以采用的可选实现方式为:确定所取出的变更任务的任务类型;将所取出的变更任务、变更任务的任务类型添加到心跳包的返回消息中发送至该存储节点。
在实际场景中存在由于存储节点自身挂掉、存储节点出现网络错误而未能够完成变更任务,因此会导致存储集群会进入状态不一致的情况。
为了避免出现存储集群出现状态不一致的情况,本实施例中的执行更改命令的装置300中,还可以包含补偿单元305,用于执行以下内容:生成报告任务;将所生成的报告任务添加到对应各存储节点的异步任务队列中,以发送至各存储节点,使得各存储节点收集节点的状态数据和/或配置数据;接收各存储节点发送的状态数据和/或配置数据;将各存储节点发送的状态数据和/或配置数据与本地存储的状态数据和/或配置数据进行比较,生成对应各存储节点的补偿任务并添加到对应各存储节点的异步任务队列中,以发送至各存储节点,使得各存储节点执行相应的补偿任务来保证存储集群中状态和/或配置的一致性。
其中,本实施例中的补偿单元305在生成报告任务时,可以为在存储节点发送第一个心跳包时生成报告任务并添加至异步任务队列,也可以周期性地生成报告任务添加到异步任务队列;而补偿单元205在向存储节点发送报告任务时,可以主动进行发送,也可以将异步任务队列中的报告任务添加到心跳包的返回消息进行发送。
也就是说,本实施例中的配置中心通过补偿单元305生成报告任务的方式,能够实现存储集群中各存储节点的状态和/或配置的一致性。
图4是根据本申请第四实施例的示意图。如图4所示,本实施例的执行更改任务的装置位于存储节点,包括:
发送单元401、用于向配置中心发送心跳包;
第二接收单元402、用于接收所述配置中心发送的心跳包的返回消息,所述心跳包的返回消息中包含变更任务,所述变更任务是由所述配置中心根据更改后的状态数据和/或配置数据生成的;
执行单元403、用于将所述变更任务添加到由存储节点预先设置的异步任务接收队列中以按序执行。
本实施例中的存储节点在由发送单元40向配置中心发送心跳包时,可以周期性地向配置中心发送心跳包,以通知配置中心自身的状态。
本实施例中的存储节点在由发送单元401向配置中心发送心跳包之后,由第二接收单元402接收配置中心发送的心跳包的返回消息,所接收到的心跳包的返回消息中包含变更任务。
本实施例中的存储节点在由第二接收单元402接收到配置中心发送的心跳包的返回消息之后,由执行单元403将变更任务添加到异步任务接收队列中以按序执行,其中,本实施例中的异步任务接收队列是由存储节点预先设置的。
可以理解的是,本实施例中的存储节点会预先设置异步任务接收队列来存放配置中心所发送的变更任务;存储节点可以仅预先设置一个异步任务接收队列,也可以根据变更任务的任务类型来设置多个异步任务接收队列,从而提高变更任务执行时的并发度。
本实施例中的存储节点在通过执行单元403将变更任务添加到异步任务接收队列中以按序执行时,可以采用的可选实现方式为:确定变更任务的任务类型;将变更任务添加到与任务类型对应的异步任务接收队列中以按序执行,对应不同任务类型的异步任务接收队列是存储节点预先设置的。
本实施例中位于存储节点的执行更改命令的装置400中,还可以包含第三接收单元404,用于执行:接收到配置中心发送的报告任务之后,获取本地存储的状态数据和/或配置数据;将所获取的状态数据和/或配置数据发送至配置中心,所发送的上述数据用于配置中心进行比对,以确定存储节点中的状态和/或配置是否与配置中心的状态和/或配置相同。
本实施例中的存储节点在由第三接收单元404将所获取的状态数据和/或配置数据发送至配置中心之后,还可以包含以下内容:接收配置中心发送的补偿任务;将所接收的补偿任务添加到异步任务接收队列中以按序执行。
本实施例中的存储节点通过第三接收单元404所接收的补偿任务用于存储节点更改自身与配置中心存储差别的状态数据和/或配置数据,以确保存储节点的状态和/或配置与配置中心的状态和/或相同,从而避免了存储节点由于自身原因未完成变更任务所导致的数据不同步的技术问题。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图5所示,是根据本申请实施例的执行更改任务的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如执行更改任务的方法。例如,在一些实施例中,执行更改任务的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。
在一些实施例中,计算机程序的部分或者全部可以经由ROM502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的任务分发方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行任务分发方法。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控30制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种执行更改任务的方法,所述方法在配置中心中执行,包括:
接收并执行用户发送的更改任务,将更改后的状态数据和/或配置数据存储在本地;
根据所述更改后的状态数据和/或配置数据生成变更任务,并将所述变更任务分别添加到由配置中心预先设置的对应各存储节点的异步任务队列中;
接收存储节点发送的心跳包;
从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行;
所述方法还包括:
生成报告任务;
将所述报告任务添加到对应各存储节点的异步任务队列中,以发送至各存储节点;
接收各存储节点发送的状态数据和/或配置数据;
将各存储节点发送的状态数据和/或配置数据与本地存储的状态数据和/或配置数据进行比较,生成对应各存储节点的补偿任务并添加到对应各存储节点的异步任务队列中,以发送至各存储节点。
2.根据权利要求1所述的方法,其中,所述从对应该存储节点的异步任务队列中取出所添加的变更任务包括:
确定对应该存储节点的异步任务队列中各变更任务的任务类型;
分别从对应相同任务类型的变更任务中取出最新添加的变更任务。
3.根据权利要求1所述的方法,其中,所述将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点包括:
确定所取出的变更任务的任务类型;
将所取出的变更任务、变更任务的任务类型添加到心跳包的返回消息中发送至该存储节点。
4.一种执行更改任务的方法,所述方法在存储节点中执行,包括:
向配置中心发送心跳包;
接收所述配置中心发送的心跳包的返回消息,所述心跳包的返回消息中包含变更任务,所述变更任务是由所述配置中心根据更改后的状态数据和/或配置数据生成的;
将所述变更任务添加到由存储节点预先设置的异步任务接收队列中以按序执行;
所述方法还包括:
将所获取的状态数据和/或配置数据发送至所述配置中心之后,接收所述配置中心发送的补偿任务;
将所述补偿任务添加到所述异步任务接收队列中以按序执行。
5.根据权利要求4所述的方法,其中,所述将所述变更任务添加到异步任务接收队列中以按序执行包括:
预先设置对应不同任务类型的异步任务接收队列;
确定所述变更任务的任务类型;
将所述变更任务添加到与所述任务类型对应的异步任务接收队列中以按序执行。
6.根据权利要求4所述的方法,还包括:
接收到所述配置中心发送的报告任务之后,获取本地存储的状态数据和/或配置数据;
将所获取的状态数据和/或配置数据发送至所述配置中心。
7.一种执行更改任务的装置,所述装置位于配置中心,包括:
更改单元,用于接收并执行用户发送的更改任务,将更改后的状态数据和/或配置数据存储在本地;
生成单元,用于根据所述更改后的状态数据和/或配置数据生成变更任务,并将所述变更任务分别添加到由配置中心预先设置的对应各存储节点的异步任务队列中;
第一接收单元,用于接收存储节点发送的心跳包;
处理单元,用于从对应该存储节点的异步任务队列中取出所添加的变更任务,并将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点,以使得该存储节点将所述心跳包的返回消息中包含的变更任务添加到由该存储节点预先设置的异步任务接收队列中以按序执行;
所述装置还包括补偿单元,用于执行:
生成报告任务;
将所述报告任务添加到对应各存储节点的异步任务队列中,以发送至各存储节点;
接收各存储节点发送的状态数据和/或配置数据;
将各存储节点发送的状态数据和/或配置数据与本地存储的状态数据和/或配置数据进行比较,生成对应各存储节点的补偿任务并添加到对应各存储节点的异步任务队列中,以发送至各存储节点。
8.根据权利要求7所述的装置,其中,所述处理单元在从对应该存储节点的异步任务队列中取出所添加的变更任务时,具体执行:
确定对应该存储节点的异步任务队列中各变更任务的任务类型;
分别从对应相同任务类型的变更任务中取出最新添加的变更任务。
9.根据权利要求7所述的装置,其中,所述处理单元在将所取出的变更任务添加到心跳包的返回消息中发送至该存储节点时,具体执行:
确定所取出的变更任务的任务类型;
将所取出的变更任务、变更任务的任务类型添加到心跳包的返回消息中发送至该存储节点。
10.一种执行更改任务的装置,所述装置位于存储节点,包括:
发送单元,用于向配置中心发送心跳包;
第二接收单元,用于接收所述配置中心发送的心跳包的返回消息,所述心跳包的返回消息中包含变更任务,所述变更任务是由所述配置中心根据更改后的状态数据和/或配置数据生成的;
执行单元,用于将所述变更任务添加到由存储节点预先设置的异步任务接收队列中以按序执行;
所述装置还包括第三接收单元,用于执行:
将所获取的状态数据和/或配置数据发送至所述配置中心之后,接收所述配置中心发送的补偿任务;
将所述补偿任务添加到所述异步任务接收队列中以按序执行。
11.根据权利要求10所述的装置,其中,所述执行单元在将所述变更任务添加到异步任务接收队列中以按序执行时,具体执行:
预先设置对应不同任务类型的异步任务接收队列;
确定所述变更任务的任务类型;
将所述变更任务添加到与所述任务类型对应的异步任务接收队列中以按序执行。
12.根据权利要求10所述的装置,其中,所述第三接收单元还用于执行:
接收到所述配置中心发送的报告任务之后,获取本地存储的状态数据和/或配置数据;
将所获取的状态数据和/或配置数据发送至所述配置中心。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
CN202110129933.0A 2021-01-29 2021-01-29 执行更改任务的方法、装置、电子设备以及可读存储介质 Active CN112817992B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202110129933.0A CN112817992B (zh) 2021-01-29 2021-01-29 执行更改任务的方法、装置、电子设备以及可读存储介质
US17/498,076 US20220244990A1 (en) 2021-01-29 2021-10-11 Method for performing modification task, electronic device and readable storage medium
EP21202610.8A EP4036751A1 (en) 2021-01-29 2021-10-14 Method and apparatus for performing modification task, electronic device and readable storage medium
KR1020220004144A KR20220110080A (ko) 2021-01-29 2022-01-11 변경 태스크를 실행하는 방법, 장치, 전자 기기, 프로그램 및 판독 가능 기록 매체
JP2022005542A JP7367287B2 (ja) 2021-01-29 2022-01-18 変更タスクを実行する方法、装置、電子機器、及び読み取り可能な記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110129933.0A CN112817992B (zh) 2021-01-29 2021-01-29 执行更改任务的方法、装置、电子设备以及可读存储介质

Publications (2)

Publication Number Publication Date
CN112817992A CN112817992A (zh) 2021-05-18
CN112817992B true CN112817992B (zh) 2023-06-23

Family

ID=75860342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110129933.0A Active CN112817992B (zh) 2021-01-29 2021-01-29 执行更改任务的方法、装置、电子设备以及可读存储介质

Country Status (5)

Country Link
US (1) US20220244990A1 (zh)
EP (1) EP4036751A1 (zh)
JP (1) JP7367287B2 (zh)
KR (1) KR20220110080A (zh)
CN (1) CN112817992B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115914362A (zh) * 2022-11-17 2023-04-04 杉数科技(北京)有限公司 消息推送方法、装置、计算机可读介质及电子设备
CN117118830B (zh) * 2023-10-16 2024-01-23 北京持安科技有限公司 一种基于队列的分布式网关配置方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136003A (zh) * 2011-03-25 2011-07-27 上海交通大学 大规模分布式存储系统
CN108121514A (zh) * 2017-12-29 2018-06-05 北京奇虎科技有限公司 元信息更新方法、装置、计算设备及计算机存储介质
CN111209333A (zh) * 2019-12-20 2020-05-29 中国平安财产保险股份有限公司 数据更新方法、装置、终端及存储介质
CN111651464A (zh) * 2020-04-15 2020-09-11 北京皮尔布莱尼软件有限公司 数据处理方法、系统及计算设备
CN112181950A (zh) * 2020-10-19 2021-01-05 北京米连科技有限公司 一种分布式对象数据库的构建方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4842720B2 (ja) 2006-06-29 2011-12-21 株式会社日立製作所 ストレージシステム及びデータ複製方法
CN101562543B (zh) * 2009-05-25 2013-07-31 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
JP6224985B2 (ja) 2013-10-23 2017-11-01 日本電信電話株式会社 通知装置及び通知方法
US9450906B2 (en) * 2013-11-08 2016-09-20 International Business Machines Corporation Managing a messaging queue in an asynchronous messaging system
US20150263900A1 (en) * 2014-03-11 2015-09-17 Schlumberger Technology Corporation High performance distributed computing environment particularly suited for reservoir modeling and simulation
US11290524B2 (en) * 2014-08-13 2022-03-29 Microsoft Technology Licensing, Llc Scalable fault resilient communications within distributed clusters
CN105989123A (zh) * 2015-02-13 2016-10-05 阿里巴巴集团控股有限公司 一种数据同步方法、装置和系统
US10346367B1 (en) * 2015-04-30 2019-07-09 Amazon Technologies, Inc. Load shedding techniques for distributed services with persistent client connections to ensure quality of service
CN106815071A (zh) * 2017-01-12 2017-06-09 上海轻维软件有限公司 基于有向无环图的大数据作业调度系统
US10997033B2 (en) * 2019-01-31 2021-05-04 Rubrik, Inc. Distributed streaming database restores

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136003A (zh) * 2011-03-25 2011-07-27 上海交通大学 大规模分布式存储系统
CN108121514A (zh) * 2017-12-29 2018-06-05 北京奇虎科技有限公司 元信息更新方法、装置、计算设备及计算机存储介质
CN111209333A (zh) * 2019-12-20 2020-05-29 中国平安财产保险股份有限公司 数据更新方法、装置、终端及存储介质
CN111651464A (zh) * 2020-04-15 2020-09-11 北京皮尔布莱尼软件有限公司 数据处理方法、系统及计算设备
CN112181950A (zh) * 2020-10-19 2021-01-05 北京米连科技有限公司 一种分布式对象数据库的构建方法

Also Published As

Publication number Publication date
US20220244990A1 (en) 2022-08-04
JP7367287B2 (ja) 2023-10-24
EP4036751A1 (en) 2022-08-03
KR20220110080A (ko) 2022-08-05
JP2022117451A (ja) 2022-08-10
CN112817992A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
CN111753997B (zh) 分布式训练方法、系统、设备及存储介质
US9800515B2 (en) Mechanism for controlling a process on a computing node based on the participation status of the computing node
CN112817992B (zh) 执行更改任务的方法、装置、电子设备以及可读存储介质
WO2022170782A1 (zh) 微服务配置的方法、装置、电子设备、系统以及存储介质
CN112866391A (zh) 消息推送方法、装置、电子设备及存储介质
CN111782341B (zh) 用于管理集群的方法和装置
CN113364877A (zh) 数据处理方法、装置、电子设备和介质
CN111782147A (zh) 用于集群扩缩容的方法和装置
CN109257396A (zh) 一种分布式锁调度方法及装置
CN114327819B (zh) 一种任务管理方法、装置、设备及存储介质
CN113419921B (zh) 一种任务监控方法、装置、设备以及存储介质
CN113010285B (zh) 用于处理数据的方法、装置、设备、介质和产品
CN115361382A (zh) 基于数据群组的数据处理方法、装置、设备和存储介质
CN113656239A (zh) 针对中间件的监控方法、装置及计算机程序产品
CN112818060B (zh) 数据同步方法、装置、电子设备以及可读存储介质
CN114416276A (zh) 设备管理服务的调度方法、装置、电子设备及存储介质
CN112749193A (zh) 工作流的处理方法及装置、存储介质、电子设备
CN112925623A (zh) 任务处理方法、装置、电子设备和介质
CN111581049A (zh) 分布式系统运行状态监测方法、装置、设备及存储介质
US9747131B1 (en) System and method for variable aggregation in order for workers in a data processing to share information
CN116048791B (zh) 一种测试节点的调控方法、装置、电子设备以及存储介质
CN112596922B (zh) 通信管理方法、装置、设备和介质
CN115913954A (zh) 集群管理信息交互方法、装置、设备和存储介质
CN110221869B (zh) 用于配置数据中心运行环境的方法及装置
CN114356505A (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