CN117056123A - 数据恢复方法、装置、介质及电子设备 - Google Patents

数据恢复方法、装置、介质及电子设备 Download PDF

Info

Publication number
CN117056123A
CN117056123A CN202311016455.8A CN202311016455A CN117056123A CN 117056123 A CN117056123 A CN 117056123A CN 202311016455 A CN202311016455 A CN 202311016455A CN 117056123 A CN117056123 A CN 117056123A
Authority
CN
China
Prior art keywords
data
check point
checkpoint
computing node
current
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
Application number
CN202311016455.8A
Other languages
English (en)
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 Volcano Engine Technology Co Ltd
Original Assignee
Beijing Volcano Engine 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 Volcano Engine Technology Co Ltd filed Critical Beijing Volcano Engine Technology Co Ltd
Priority to CN202311016455.8A priority Critical patent/CN117056123A/zh
Publication of CN117056123A publication Critical patent/CN117056123A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本公开涉及一种数据恢复方法、装置、存储介质及电子设备,方法包括:接收分布式图计算系统中的计算节点发送的通知消息,通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据;在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;将检查点标识发送给各个计算节点,以使各个计算节点将检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。采用该方法可以保证检查点数据迭代一致性,保障利用检查点恢复的图计算的结果的准确性。

Description

数据恢复方法、装置、介质及电子设备
技术领域
本公开涉及图计算技术领域,具体地,涉及一种数据恢复方法、装置、介质及电子设备。
背景技术
图(Graph)是一种重要的数据结构,由节点和边组成。在图中,节点表示实体,边则表示实体之间的关系。随着互联网的快速增长,一些图数据规模变得十分庞大,这给图的分析和计算带来了巨大的挑战。
相关技术中,提出分布式图计算系统并在分布式图计算系统中应用检查点(Checkpoint,CP)来应对大规模图数据的处理。然而,相关技术中,对各个计算节点中的检查点数据的管理存在不足,检查点数据在分布式计算节点中的迭代一致性不能够保证,导致利用检查点恢复的图计算的结果发生错误。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开提供一种数据恢复方法,所述方法包括:
接收分布式图计算系统中的计算节点发送的通知消息,所述通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据;
在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;
将所述检查点标识发送给各个计算节点,以使所述各个计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
第二方面,本公开提供一种数据恢复方法,所述方法包括:
在持久内存中成功存储本次检查点数据的情况下,发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;
接收本次检查点对应的检查点标识,所述检查点标识是确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下生成的;
将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
第三方面,本公开提供一种数据恢复方法,所述方法包括:
从计算节点在持久内存中成功存储本次检查点数据的情况下,向主计算节点发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;
主计算节点在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;
主计算节点将所述检查点标识发送给从计算节点;
从计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的从计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
第四方面,本公开提供一种数据恢复装置,所述装置包括:
第一接收模块,被配置为接收分布式图计算系统中的计算节点发送的通知消息,所述通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据;
生成模块,被配置为在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;
第一发送模块,被配置为将所述检查点标识发送给各个计算节点,以使所述各个计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
第五方面,本公开提供一种数据恢复装置,所述装置包括:
第三发送模块,被配置为在持久内存中成功存储本次检查点数据的情况下,发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;
第二接收模块,被配置为接收本次检查点对应的检查点标识,所述检查点标识是确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下生成的;
关联模块,被配置为将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
第六方面,本公开提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现第一方面或者第二方面中所述方法的步骤。
第七方面,本公开提供一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现第一方面或者第二方面中所述方法的步骤。
通过上述技术方案,可以接收分布式图计算系统中的计算节点发送的用于表征对应的计算节点在持久内存中成功存储本次检查点数据通知消息,通过通知消息可以进一步确定分布式图计算系统中的所有计算节点是否均在各自的持久内存中成功存储本次检查点数据,在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,可以生成本次检查点对应的检查点标识,然后,再将检查点标识发送给各个计算节点,从而各个计算节点可以将检查点标识与持久内存中存储的本次检查点数据进行关联,进而使得计算节点可以将关联后的本次检查点数据用于在获取到下一次检查点标识之前执行恢复时的数据恢复。由于是在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,才生成本次检查点对应的检查点标识,进而计算节点才能进一步将检查点标识与持久内存中保存的本次检查点数据进行关联,并可以将本次检查点数据用于获取到下一次检查点对应的检查点标识之前的数据恢复,这样使得后续在获取到下一次检查点对应的检查点标识之前执行恢复时,可以确保任意计算节点均能够使用本次检查点数据进行恢复,保证了检查点数据迭代一致性,保障了利用检查点恢复的图计算的结果的准确性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
图1是根据本公开一示例性实施例示出的一种分布式图计算系统的架构图。
图2是根据本公开一示例性实施例示出的一种分布式图计算系统的架构图。
图3是根据本公开一示例性实施例示出的一种图计算模型的架构图。
图4是根据本公开一示例性实施例示出的一种数据恢复方法的流程图。
图5是根据本公开一示例性实施例示出的一种数据恢复方法的流程图。
图6是根据本公开一示例性实施例示出的一种数据恢复方法的流程图。
图7是根据本公开一示例性实施例示出的一种数据恢复装置的框图。
图8是根据本公开一示例性实施例示出的一种数据恢复装置的框图。
图9是根据本公开一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
同时,可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
在一些实施方式中,在使用持久内存作为分布式图计算系统中各节点的存储介质时,为了检查点数据在分布式计算节点中的迭代一致性,可以使用一组特殊的CPU指令进行控制,例如CLFLUSHOPT(用于把缓存行刷回内存,并且让缓存行失效,不同缓存行可以并发执行)或CLWB(用于把缓存行刷回内存,不同缓存行可以并发执行)等CPU指令进行操作,然而,该方法操作复杂,代价昂贵。
在对本公开实施例的技术方案进行详细描述之前,先对本公开实施例涉及的应用环境进行介绍。
参考图1,示出了一种分布式图计算系统的架构图,在图1中的分布式图计算系统中,包括多个分布式计算节点,可以从图1的分布式图计算系统中的各个计算节点中选定一个主计算节点110,剩余的计算节点作为从计算节点120,主计算节点110可以在确定所有参与图计算任务的计算节点均各自存储本次检查点数据的情况下,生成系统唯一的检查点标识,例如生成本次检查点的ID。后续在需要恢复检查点数据时,主计算节点110便可以将该检查点标识发送给执行数据恢复的目标计算节点,目标计算节点便可以根据检查点标识,从各自的持久内存(Persistent Memory,PMEM)中获取关联的检查点数据,并基于关联的检查点数据进行数据恢复。其中,目标计算节点可以是主计算节点110,也可以是从计算节点120。
参考图2,示出了一种分布式图计算系统的架构图,在图2中的分布式图计算系统中,包括统筹节点以及多个分布式计算节点,统筹节点可以在确定所有参与图计算任务的计算节点均各自存储本次检查点数据的情况下,生成系统唯一的检查点标识,例如生成本次检查点的ID。后续在需要恢复检查点数据时,统筹节点便可以将该检查点标识发送给执行数据恢复的目标计算节点,目标计算节点便可以根据检查点标识,从各自的持久内存中获取关联的检查点数据,并基于关联的检查点数据进行数据恢复。
本公开实施例中,计算节点可以理解为部署了图计算模型并实际参与图计算任务的节点设备。
下面再结合图3对本公开实施例的计算节点中部署的图计算模型进行介绍。
如图3所示,图计算模型可以包括检查点代理(check point-Agent,CP-Agent)模块、算法应用、图计算内核和可持久化存储管理器(Persistent Memory Manager,PMM)四个模块。
检查点代理模块在图计算模型中负责管理全局运行时环境,以确保模型在计算节点遇到故障时能够迅速恢复。检查点代理模块具备生成、协调和监控各个计算节点运行状态的能力。
在模型之外,用户可以借助指定接口编写图算法以构建算法应用。其中,方法1例如可以是Compute()方法,该方法作为以顶点为中心的核心计算逻辑,支持实现各种分布式图算法。除此之外,用户还可以自定义方法2和方法3两个可选方法,其中,方法2例如可以是Combine()方法,该方法用于在本地组合针对相同目标顶点的消息,从而降低跨节点通信开销,方法3例如可以是Aggregate()方法,该方法则负责定期聚合全局中间结果或统计数据,作为算法的全局计算或整体控制接口。借助这些接口,用户能够方便地实现自定义的分布式图算法。
图计算内核是图计算模型的核心部分。图计算内核执行应用程序时,使用大规模同步并行计算模型(Bulk Synchronous Parallel Computing Model,BSP)迭代设计。图计算内核可以进一步分为多个组件,其中发送组件(Sender)和接收组件(Receiver)驱动着计算中的数据通信任务,包括合并消息和在持久内存管理器中构建消息表。BSP模块代表了计算操作的集合,这个模块管理着计算过程中在多个线程中调用计算方法、生成消息并更新顶点的值的流程。计算的所有处理和通信中使用的线程都由线程池管理。为执行图算法计算,计算内核首先使用图加载器从Hadoop分布式文件系统(HDFS)或本地磁盘等介质加载所需的输入图数据。用户可以自定义顶点和边的输入数据格式。图计算模型采用连续存储的方式以获得来自顺序读/写的性能优势。算法按超步的回合进行,在每个超步中,每个计算节点将计算分批处理并将消息洗牌给其他计算节点。当最后一个超步完成后,结果转存器(Result Dumper)将以用户定义的格式将结果写回到分布式文件系统或者本地磁盘中,并终止程序。
系统的基座模块是持久内存管理器(PMM),它处理系统对持久内存的访问和持久数据管理,包括数据存储、索引构建、内存分配和垃圾收集。
考虑到容错性,检查点管理器将生成和管理在某些超步发生的检查点数据。在进入故障恢复过程时,计算节点将使用这些检查点数据来恢复自己以继续分布式计算。
图4是根据本公开一示例性实施例示出的一种数据恢复方法的流程图。该数据恢复方法可以应用于图1所示的主计算节点或者图2所示的统筹节点,参照图4,该数据恢复方法包括以下步骤:
S410,接收分布式图计算系统中的计算节点发送的通知消息,通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据。
在对图数据进行分布式图计算的过程中,各个实际参与计算任务的计算节点可以分别执行自身的图计算任务。
在一些实施方式中,结合图1所示,各个实际参与计算任务的计算节点可以是主计算节点以及从计算节点,从而,主计算节点以及从计算节点中的计算内核可以分别使用图加载器从Hadoop分布式文件系统或各自本地磁盘等介质加载所需的输入图数据,接着分别开始执行超步计算过程,即执行图计算任务。其中,超步是计算中的一次迭代。
在一些实施方式中,结合图2所示,各个实际参与计算任务的计算节点可以是除统筹节点之外的所有计算节点,各个计算节点中的计算内核可以分别使用图加载器从Hadoop分布式文件系统或各自本地磁盘等介质加载所需的输入图数据,接着分别开始执行超步计算过程,即执行图计算任务。
需要说明的是,在后续实施例中,为了方便理解,均以图1所示的架构图为例对本公开实施例的详细技术方案进行说明。
在一些实施方式中,可以选择按照预先设定的超步数量构建检查点,从而,在每隔预先设定的超步数量之后的检查点超步轮次,主计算节点以及各个从计算节点在持久内存中存储本次检查点超步对应的数据,并且,本公开实施例中,任一个从计算节点在成功存储本次检查点超步对应的数据之后,均可以向主计算节点发送用于表征对应的从计算节点在持久内存中成功存储本次检查点数据的通知消息。从而,主计算节点可以接收到分布式图计算系统中的从计算节点发送的通知消息。
S420,在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识。
本公开实施例中,由于通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据,那么主计算节点可以根据接收到通知消息确定各个从计算节点是否已经在持久内存中成功存储本次检查点数据,若接收到了所有从计算节点的通知消息,则可以确定所有的从计算节点均在持久内存中成功存储本次检查点数据。此外,可以理解的是,主计算节点还可以通过进程间通信的方式确定自身是否已经在持久内存中成功存储本次检查点数据。
从而,通过上述过程,主计算节点可以确定分布式图计算系统中的所有计算节点是否均在各自的持久内存中成功存储本次检查点数据,若分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据,则主计算节点可以生成本次检查点对应的检查点标识,例如,可以生成表征本次检查点是整个图计算过程中的第几次检查点的次数,以该次数作为本次检查点对应的检查点标识。
在一些实施方式中,生成了本次检查点对应的检查点标识之后,主计算节点可以将生成的检查点标识存储在自身的持久内存中,此外,还可以确定之前的检查点标识无效,可以对之前的检查点标识进行删除。该过程可以理解为主计算节点对存储的检查点标识进行更新的过程。
因此,在一些实施方式中,本公开实施例的方法还可以包括以下步骤:
利用检查点标识更新持久内存中保存的检查点标识。
本公开实施例中,主计算节点可以利用检查点标识更新持久内存中保存的检查点标识。
S430,将检查点标识发送给各个计算节点,以使各个计算节点将检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点标识之前执行恢复时的数据恢复。
本公开实施例中,主计算节点在生成本次检查点对应的检查点标识之后,可以将检查点标识发送给各个从计算节点,以通知各个从计算节点之前的检查点标识无效。
在一些实施方式中,从计算节点在接收到本次检查点对应的检查点标识之后,可以将本次检查点对应的检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据可以理解为有效的检查点数据,可以用于在获取到下一次检查点标识之前执行恢复时的数据恢复。
此外,本公开实施例中将本次检查点对应的检查点标识与本次检查点数据进行关联,可以方便后续通过检查点标识对本次检查点数据进行管理。
在一些实施方式中,若主计算节点未确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据,则主计算节点不会生成本次检查点对应的检查点标识,这种情况下,在后续进行数据恢复时,计算节点则使用前一次的检查点数据进行数据恢复。
采用本公开实施例的方法,可以接收分布式图计算系统中的计算节点发送的用于表征对应的计算节点在持久内存中成功存储本次检查点数据通知消息,通过通知消息可以进一步确定分布式图计算系统中的所有计算节点是否均在各自的持久内存中成功存储本次检查点数据,在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,可以生成本次检查点对应的检查点标识,然后,再将检查点标识发送给各个计算节点,从而各个计算节点可以将检查点标识与持久内存中存储的本次检查点数据进行关联,进而使得计算节点可以将关联后的本次检查点数据用于在获取到下一次检查点标识之前执行恢复时的数据恢复。由于是在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,才生成本次检查点对应的检查点标识,进而计算节点才能进一步将检查点标识与持久内存中保存的本次检查点数据进行关联,并可以将本次检查点数据用于获取到下一次检查点对应的检查点标识之前的数据恢复,这样使得后续在获取到下一次检查点对应的检查点标识之前执行恢复时,可以确保任意计算节点均能够使用本次检查点数据进行恢复,保证了检查点数据迭代一致性,保障了利用检查点恢复的图计算的结果的准确性。
此外,本公开实施例的方法,由于不需要通过CLFLUSHOPT或CLWB等CPU指令实现检查点数据迭代一致性,可以降低实现难度以及实现成本。
在一些实施方式中,本公开实施例的方法还可以包括以下步骤:
利用检查点标识更新持久内存中保存的检查点标识;在确定恢复本次检查点数据的情况下,向执行数据恢复的目标计算节点发送用于指示数据恢复的恢复消息,以使目标计算节点根据恢复消息包括的检查点标识,从各自的持久内存中获取关联的本次检查点数据,并基于本次检查点数据进行数据恢复。
本公开实施例中,主计算节点在生成本次检查点对应的检查点标识之后,可以利用生成的检查点标识对持久内存中保存的检查点标识进行更新,这样,直到生成下一次检查点对应的检查点标识之前,若在某个时间确定需要恢复本次检查点数据,则可以向执行数据恢复的目标计算节点发送用于指示数据恢复的恢复消息,恢复消息中包括检查点标识,这样,目标计算节点可以根据恢复消息包括的检查点标识,从各自的持久内存中获取与检查点标识关联的本次检查点数据,然后便可以基于本次检查点数据进行数据恢复。
采用本公开实施例的方法,通过主计算节点中唯一保存的检查点标识来进行数据恢复,可以进一步确保用于数据恢复的检查点数据的迭代一致性。
结合前述内容可知,本公开实施例中,分布式图计算系统中的任一个计算节点中均支持将本次检查点数据存储到该计算节点的持久内存中,在一些实施方式中,分布式图计算系统中的任一计算节点是通过以下方式将本次检查点数据存储到该计算节点的持久内存中的:
基于本次检查点数据包括的各个数据的第一数据类型以及本次检查点数据对应的超步序号,确定键值对存储结构中的各个键;基于本次检查点数据包括的各个第一数据类型的数据分别对应的数据内容,确定键值对存储结构中的值;将同一个第一数据类型对应的键与值作为一组键值对数据存储到该计算节点的持久内存中。
本公开实施例中,可以从不同的维度对数据进行数据类型的划分。例如,从不同的维度可以将数据类型分为第一数据类型以及第二数据类型。其中,第一数据类型可以包括点、边、消息等类型。第二数据类型可以包括可切分数据以及不可切分数据。
本公开实施例中,可以利用键值对存储结构存储本次检查点数据,在计算节点中,每个键由本次检查点数据的第一数据类型以及对应的超步序号生成。其中,超步序号可以理解为超步对应的执行轮次,例如,本次检查点是针对第5次超步的数据构建的检查点,则本次检查点数据对应的超步序号为5。每个值由检查点中存储的各个第一数据类型的数据分别对应的数据内容生成。
在一些实施方式中,对于点数据可以用点表进行保存。对边数据,可以用边表进行保存。对于消息数据,可以用消息表进行保存。
在构建键与值之后,便可以将同一个检查点数据中同一个第一数据类型对应的键与值作为一组键值对数据存储到该计算节点的持久内存中。
采用本公开实施例的方法构建键值对数据结构,便于在进行数据恢复时快速、准确地定位需要的检查点数据。
在一些实施方式中,可以适应哈希表来存储本次检查点数据对应的键值对,如此,在后续利用本次检查点数据进行恢复过程中,只需恢复持久内存中的键值对索引,也即重新计算第一数据类型和超步序号来查找相应的键值对,如此,可以有效地避免查找第一数据类型和超步序号的开销,提高恢复效率。
在一些实施方式中,分布式图计算系统中的任一计算节点是通过以下方式将本次检查点数据存储到该计算节点的持久内存中的:
在本次检查点为第一次超步之前构建的检查点时,将待进行图计算的图数据包括的拓扑信息以及包括的初始顶点状态作为本次检查点数据存储到该计算节点的持久内存中;
在本次检查点为针对第一次超步之后任一检查点超步构建的检查点时,将该检查点超步对应的增量顶点状态以及该检查点超步对应的消息数据作为本次检查点数据存储到该计算节点的持久内存中,增量顶点状态为该检查点超步对应的顶点状态相较于初始顶点状态发生变化的顶点状态。
本公开实施例中,为了在图计算初期也能够进行数据恢复,可以在执行第一次超步之前构建检查点,此外,结合前述内容可知,本公开实施例中还可以在执行图计算过程中,按照预先设定的超步数量构建检查点。
考虑到拓扑信息在超步中不发生改变,为了节约存储资源,可以仅在第一个超步之前进行一次检查点。因此,本公开实施例中,当本次检查点为第一次超步之前构建的检查点时,可以将待进行图计算的图数据包括的拓扑信息以及包括的初始顶点状态作为本次检查点数据存储到该计算节点的持久内存中。其中,待进行图计算的图数据包括的拓扑信息可以包括待进行图计算的图数据包括的边以及待进行图计算的图数据在整个图数据中对应的分区信息。
考虑到顶点状态和消息数据,它们在每个超步中都会改变,需要在每个检查点超步中都进行保存。因此,本公开实施例中,当本次检查点为针对第一次超步之后任一检查点超步构建的检查点时,可以将该检查点超步对应的顶点状态以及该检查点超步对应的消息数据作为本次检查点数据存储到该计算节点的持久内存中。
在一些实施方式中,该检查点超步对应的顶点状态可以仅保存该检查点超步对应的顶点状态相较于初始顶点状态发生变化的顶点状态,也即仅保存增量顶点状态,后续,可以通过获取到的增量顶点状态以及初始顶点状态准确还原该检查点超步对应的顶点状态,同样可以保证检查点数据在分布式计算节点中的迭代一致性。由于增量顶点状态数据量大大小于真实的顶点状态,因此,可以进一步节约存储资源。
此外,为了充分利用持久内存的带宽,在一些实施方式中,在将顶点状态或者增量顶点状态存储到持久内存中时,可以采用多线程并行的方式将顶点状态或者增量顶点状态存储到持久内存中。
在一些实施方式中,分布式图计算系统中的任一计算节点的内存包括第一缓冲区、第二缓冲区以及第三缓冲区,在本次检查点为针对第一次超步之后任一检查点超步构建的检查点时,第一缓冲区用于存储本次检查点超步以及上一次检查点超步之间的超步对应的消息数据,本次检查点超步对应的消息数据存储在第二缓冲区以及第三缓冲区中空闲的缓冲区。
本公开实施例中,可以在计算节点内存中创建第一缓冲区、第二缓冲区以及第三缓冲区这三个缓冲区,考虑到检查点超步之间的不需要构建检查点的常规超步的数据不需要用于提供数据恢复用,因此,常规超步的数据可以使用一个缓冲区进行存储,即使数据丢失,造成的影响不大,考虑到检查点数据用于提供数据恢复用,因此,提供另外两个缓冲区在检查点超步中交替工作,如此,可以使得在本次检查点的上一个检查点超步数据还未成功存储到持久内存中时,本次检查点数据可以有地方进行缓存,从而确保最新的检查点消息始终可用。
结合前述内容可知,本公开实施例中,分布式图计算系统中的任一个计算节点中均支持将本次检查点数据存储到该计算节点的持久内存中,此外,任一个计算节点还可以支持将常规超步的数据存储到该计算节点的持久内存中,例如也可以将常规超步中临时存储的消息数据存储到持久内存中。在一些实施方式中,无论何种数据,分布式图计算系统中的任一计算节点是通过以下方式将数据存储到该计算节点的持久内存中的:
获取待存储到持久内存中的数据的第二数据类型;基于第二数据类型与存储模式之间的对应关系,确定与数据对应的目标存储模式;基于目标存储模式对数据进行存储。
本公开实施例中,可以根据待存储到持久内存中的数据的第二数据类型,选择与第二数据类型对应的存储模型对数据进行存储。
结合前述内容可知,第二数据类型可以包括可切分数据以及不可切分数据,这种情况下,基于目标存储模式对数据进行存储,可以包括以下步骤:
按照持久内存中的内存页面大小,对可切分数据进行切分,并将切分后的数据分别存入对应的内存页面中;从持久内存中申请与不可切分数据对应大小的内存块,并将不可切分数据存入内存块中。
本公开实施例中,对于可切分数据,例如点、边、消息数据等,可以进行切分,也即这些数据在切分之后不会影响数据内容。而对于不可切分数据,例如一些序列化的数据,检查点中的元数据等,不可进行切分,也即这些数据在切分之后会影响数据内容,导致错误。
本公开实施例中,对于不同第二数据类型的数据,采用不同的数据存储方法。
在一些实施方式中,对于可切分数据,通过固定内存分配方式进行内存分配。将页面作为持久内存的最小分配单元,按照持久内存中的内存页面的大小,对可切分数据进行切分,并将切分后的数据分别存入对应的内存页面中。从而,可切分数据可以通过一系列具有顺序的页面来存储。可选地,为了实现良好的数据访问和分配,页面大小可以设置为操作系统的物理页面大小。
在一些实施方式中,可以采用共享内存管理策略获取可切分数据存储的页面。当线程尝试分配一个对象时,它首先搜索自己的私有对象缓存以获取一个空闲对象。如果没有空闲对象,则从全局空闲列表中获取已释放的对象以重新填充其本地对象缓存。只有当全局空闲列表中没有足够的空闲对象时,线程才会从持久内存中分配一个新块,并使用该新块生成空闲对象以重新填充对象缓存。当线程要删除一个对象时,它首先设置已删除对象的标签,然后候选在回收时,将携带标签的对象添加到私有对象缓存中。如果线程在对象缓存中发现有太多的空闲对象(例如,超过了批量加载大小的两倍),则会将一些空闲对象从其私有自由列表移动到全局自由列表。
采用本公开实施例的方法,可以为可切分数据提供优秀的数据局部性和高性能的数据分配。
在一些实施方式中,对于不可切分数据,通过动态内存分配方式进行内存分配。从持久内存中申请与不可切分数据对应大小的内存块,并将不可切分数据存入内存块中,从而适应不同大小的不可切分数据的存储。
在一些实施方式中,对于通过动态内存分配方式进行内存分配的不可切分数据,在数据整理期间需要将数据从现有块迁移到新分配的块,以提高数据局部性。可选地,当发现高度碎片化的块时,首先扫描块以定位块的所有有效记录,然后将这些有效记录复制到一个新块中,使得数据排列更紧凑,接下来,将迁移记录的内存访问映射到新的内存地址,并最终回收旧块的内存空间。
在一些实施方式中,分布式图计算系统中的任一计算节点是通过以下方式对该计算节点的持久内存中存储的数据进行管理的:
根据该计算节点的持久内存中存储的各个数据分别对应的生命周期,对持久内存中存储的各个数据进行管理。
本公开实施例中,可以为计算节点的持久内存中的存储的各个数据添加对应的生命周期,从而,可以根据持久内存中的各个数据分别对应的生命周期,对持久内存中存储的各个数据进行管理。
在一些实施方式中,生命周期可以包括持久保存、读取后删除以及跟随检查点标识保存。在这种情况下,根据该计算节点的持久内存中存储的各个数据分别对应的生命周期,对持久内存中存储的各个数据进行管理,可以包括以下步骤:
在对图数据进行分布式图计算过程中,将对应的生命周期为持久保存的数据保存在该计算节点的持久内存中;在对图数据进行分布式图计算过程中,在对持久内存中对应的生命周期为读取后删除的数据进行读取之后,将对应的生命周期为读取后删除的数据删除;在对图数据进行分布式图计算过程中,在删除检查点标识之后,将与删除的检查点标识关联的、且对应的生命周期为跟随检查点标识保存的数据删除。
本公开实施例中,对于生命周期为持久保存的数据,例如,拓扑信息,应该在分布式图计算的整个运行时间内保持有效。因此,可以在对图数据进行分布式图计算过程中,将对应的生命周期为持久保存的数据保存在该计算节点的持久内存中。
对于生命周期为读取后删除的数据,例如,常规超步中临时存储的消息数据,在读取后被销毁,并且不会保存在检查点中,在进程重启后不会被恢复。因此,可以在对图数据进行分布式图计算过程中,在对持久内存中对应的生命周期为读取后删除的数据进行读取之后,将对应的生命周期为读取后删除的数据删除。
对于生命周期为跟随检查点标识保存的数据,例如,检查点数据,检查点数据通过检查点标识进行关联,与检查点标识一起保存。因此,可以在对图数据进行分布式图计算过程中,在删除检查点标识之后,将与删除的检查点标识关联的、且对应的生命周期为跟随检查点标识保存的数据删除。
采用本公开实施例的方法,对持久内存中存储的数据设置生命周期,并根据对应的生命周期对持久内存中存储的数据进行存储管理,可以提高对持久内存中存储的数据进行管理的效率。
图5是根据本公开一示例性实施例示出的一种数据恢复方法的流程图。该数据恢复方法可以应用于图1所示的从计算节点或者图2所示的计算节点,参照图5,该数据恢复方法包括以下步骤:
S510,在持久内存中成功存储本次检查点数据的情况下,发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息。
S520,接收本次检查点对应的检查点标识,检查点标识是确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下生成的。
S530,将检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
上述步骤S510-S530的详细描述可以参考前述实施例,此处不再赘述。
采用上述方式,由于是在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,才生成本次检查点对应的检查点标识,进而计算节点才能进一步将检查点标识与持久内存中保存的本次检查点数据进行关联,并可以将本次检查点数据用于获取到下一次检查点对应的检查点标识之前的数据恢复,这样使得后续在获取到下一次检查点对应的检查点标识之前执行恢复时,可以确保任意计算节点均能够使用本次检查点数据进行恢复,保证了检查点数据迭代一致性,保障了利用检查点恢复的图计算的结果的准确性。
在一些实施方式中,本公开实施例的方法还可以包括以下步骤:
接收用于指示数据恢复的恢复消息,恢复消息包括检查点标识;根据检查点标识,从持久内存中获取关联的本次检查点数据;基于本次检查点数据进行数据恢复。
图6是根据本公开一示例性实施例示出的一种数据恢复方法的交互图。该数据恢复方法可以应用于图1所示的分布式图计算系统或者图2所示的分布式图计算系统,参照图6,该数据恢复方法包括以下步骤:
S610,从计算节点在持久内存中成功存储本次检查点数据的情况下,向主计算节点发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息。
S620,主计算节点在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识。
S630,主计算节点将检查点标识发送给从计算节点。
S640,从计算节点将检查点标识与持久内存中存储的本次检查点数据进行关联。
其中,关联后的本次检查点数据用于对应的从计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
上述步骤S610-S640的详细描述可以参考前述实施例,此处不再赘述。
采用上述方式,由于是在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,才生成本次检查点对应的检查点标识,进而计算节点才能进一步将检查点标识与持久内存中保存的本次检查点数据进行关联,并可以将本次检查点数据用于获取到下一次检查点对应的检查点标识之前的数据恢复,这样使得后续在获取到下一次检查点对应的检查点标识之前执行恢复时,可以确保任意计算节点均能够使用本次检查点数据进行恢复,保证了检查点数据迭代一致性,保障了利用检查点恢复的图计算的结果的准确性。
图7是根据本公开一示例性实施例示出的一种数据恢复装置的框图,参照图7,该数据恢复装置700包括:
第一接收模块710,被配置为接收分布式图计算系统中的计算节点发送的通知消息,所述通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据;
生成模块720,被配置为在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;
第一发送模块730,被配置为将所述检查点标识发送给各个计算节点,以使所述各个计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
可选地,数据恢复装置700还包括:
更新模块,被配置为利用所述检查点标识更新持久内存中保存的检查点标识;
第二发送模块,被配置为在确定恢复本次检查点数据的情况下,向执行数据恢复的目标计算节点发送用于指示数据恢复的恢复消息,以使所述目标计算节点根据所述恢复消息包括的检查点标识,从各自的持久内存中获取关联的本次检查点数据,并基于所述本次检查点数据进行数据恢复。
可选地,数据恢复装置700还包括:
第一确定模块,被配置为基于本次检查点数据包括的各个数据的第一数据类型以及本次检查点数据对应的超步序号,确定键值对存储结构中的各个键;
第二确定模块,被配置为基于本次检查点数据包括的各个第一数据类型的数据分别对应的数据内容,确定键值对存储结构中的值;
第一存储模块,被配置为将同一个第一数据类型对应的键与值作为一组键值对数据存储到该计算节点的持久内存中。
可选地,数据恢复装置700还包括:
第二存储模块,被配置为在本次检查点为第一次超步之前构建的检查点时,将待进行图计算的图数据包括的拓扑信息以及包括的初始顶点状态作为本次检查点数据存储到该计算节点的持久内存中;
第三存储模块,被配置为在本次检查点为针对第一次超步之后任一检查点超步构建的检查点时,将该检查点超步对应的增量顶点状态以及该检查点超步对应的消息数据作为本次检查点数据存储到该计算节点的持久内存中,所述增量顶点状态为该检查点超步对应的顶点状态相较于所述初始顶点状态发生变化的顶点状态。
可选地,所述分布式图计算系统中的任一计算节点的内存包括第一缓冲区、第二缓冲区以及第三缓冲区,在本次检查点为针对第一次超步之后任一检查点超步构建的检查点时,所述第一缓冲区用于存储本次检查点超步以及上一次检查点超步之间的超步对应的消息数据,本次检查点超步对应的消息数据存储在所述第二缓冲区以及第三缓冲区中空闲的缓冲区。
可选地,数据恢复装置700还包括:
第一获取模块,被配置为获取待存储到持久内存中的数据的第二数据类型;
第三确定模块,被配置为基于第二数据类型与存储模式之间的对应关系,确定与所述数据对应的目标存储模式;
第四存储模块,被配置为基于所述目标存储模式对所述数据进行存储。
可选地,所述第二数据类型包括可切分数据以及不可切分数据,这种情况下,第四存储模块包括:
第一存储子模块,被配置为按照持久内存中的内存页面大小,对可切分数据进行切分,并将切分后的数据分别存入对应的内存页面中;
第二存储子模块,被配置为从持久内存中申请与不可切分数据对应大小的内存块,并将所述不可切分数据存入所述内存块中。
可选地,数据恢复装置700还包括:
管理模块,被配置为根据该计算节点的持久内存中存储的各个数据分别对应的生命周期,对持久内存中存储的各个数据进行管理。
可选地,所述生命周期包括持久保存、读取后删除以及跟随检查点标识保存,这种情况下,管理模块包括:
第一管理子模块,被配置为在对图数据进行分布式图计算过程中,将对应的生命周期为所述持久保存的数据保存在该计算节点的所述持久内存中;
第二管理子模块,被配置为在对图数据进行分布式图计算过程中,在对所述持久内存中对应的生命周期为读取后删除的数据进行读取之后,将对应的生命周期为读取后删除的数据删除;
第三管理子模块,被配置为在对图数据进行分布式图计算过程中,在删除检查点标识之后,将与删除的所述检查点标识关联的、且对应的生命周期为跟随检查点标识保存的数据删除。
图8是根据本公开一示例性实施例示出的一种数据恢复装置的框图,参照图8,该数据恢复装置800包括:
第三发送模块810,被配置为在持久内存中成功存储本次检查点数据的情况下,发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;
第二接收模块820,被配置为接收本次检查点对应的检查点标识,所述检查点标识是确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下生成的;
关联模块830,被配置为将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
可选地,数据恢复装置800还包括:
第三接收模块,被配置为接收用于指示数据恢复的恢复消息,所述恢复消息包括所述检查点标识;
第二获取模块,被配置为根据所述检查点标识,从持久内存中获取关联的本次检查点数据;
恢复模块,被配置为基于所述本次检查点数据进行数据恢复。
下面参考图9,其示出了适于用来实现本公开实施例的电子设备900的结构示意图。本公开实施例中的电子设备可以包括但不限于电脑、平板电脑以及笔记本。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储装置908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
通常,以下装置可以连接至I/O接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM 902被安装。在该计算机程序被处理装置901执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,电子设备可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收分布式图计算系统中的计算节点发送的通知消息,所述通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据;在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;将所述检查点标识发送给各个计算节点,以使所述各个计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
或者,使得该电子设备:在持久内存中成功存储本次检查点数据的情况下,发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;接收本次检查点对应的检查点标识,所述检查点标识是确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下生成的;将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

Claims (16)

1.一种数据恢复方法,其特征在于,所述方法包括:
接收分布式图计算系统中的计算节点发送的通知消息,所述通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据;
在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;
将所述检查点标识发送给各个计算节点,以使所述各个计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用所述检查点标识更新持久内存中保存的检查点标识;
在确定恢复本次检查点数据的情况下,向执行数据恢复的目标计算节点发送用于指示数据恢复的恢复消息,以使所述目标计算节点根据所述恢复消息包括的检查点标识,从各自的持久内存中获取关联的本次检查点数据,并基于所述本次检查点数据进行数据恢复。
3.根据权利要求1所述的方法,其特征在于,所述分布式图计算系统中的任一计算节点是通过以下方式将本次检查点数据存储到该计算节点的持久内存中的:
基于本次检查点数据包括的各个数据的第一数据类型以及本次检查点数据对应的超步序号,确定键值对存储结构中的各个键;
基于本次检查点数据包括的各个第一数据类型的数据分别对应的数据内容,确定键值对存储结构中的值;
将同一个第一数据类型对应的键与值作为一组键值对数据存储到该计算节点的持久内存中。
4.根据权利要求1所述的方法,其特征在于,所述分布式图计算系统中的任一计算节点是通过以下方式将检查点数据存储到该计算节点的持久内存中的:
在本次检查点为第一次超步之前构建的检查点时,将待进行图计算的图数据包括的拓扑信息以及包括的初始顶点状态作为本次检查点数据存储到该计算节点的持久内存中;
在本次检查点为针对第一次超步之后任一检查点超步构建的检查点时,将该检查点超步对应的增量顶点状态以及该检查点超步对应的消息数据作为本次检查点数据存储到该计算节点的持久内存中,所述增量顶点状态为该检查点超步对应的顶点状态相较于所述初始顶点状态发生变化的顶点状态。
5.根据权利要求1所述的方法,其特征在于,所述分布式图计算系统中的任一计算节点的内存包括第一缓冲区、第二缓冲区以及第三缓冲区,在本次检查点为针对第一次超步之后任一检查点超步构建的检查点时,所述第一缓冲区用于存储本次检查点超步以及上一次检查点超步之间的超步对应的消息数据,本次检查点超步对应的消息数据存储在所述第二缓冲区以及第三缓冲区中空闲的缓冲区。
6.根据权利要求1所述的方法,其特征在于,所述分布式图计算系统中的任一计算节点是通过以下方式将数据存储到该计算节点的持久内存中的:
获取待存储到持久内存中的数据的第二数据类型;
基于第二数据类型与存储模式之间的对应关系,确定与所述数据对应的目标存储模式;
基于所述目标存储模式对所述数据进行存储。
7.根据权利要求6所述的方法,其特征在于,所述第二数据类型包括可切分数据以及不可切分数据,所述基于所述目标存储模式对所述数据进行存储,包括:
按照持久内存中的内存页面大小,对可切分数据进行切分,并将切分后的数据分别存入对应的内存页面中;
从持久内存中申请与不可切分数据对应大小的内存块,并将所述不可切分数据存入所述内存块中。
8.根据权利要求1所述的方法,其特征在于,所述分布式图计算系统中的任一计算节点是通过以下方式对该计算节点的持久内存中存储的数据进行管理的:
根据该计算节点的持久内存中存储的各个数据分别对应的生命周期,对持久内存中存储的各个数据进行管理。
9.根据权利要求8所述的方法,其特征在于,所述生命周期包括持久保存、读取后删除以及跟随检查点标识保存,所述根据该计算节点的持久内存中存储的各个数据分别对应的生命周期,对持久内存中存储的各个数据进行管理,包括:
在对图数据进行分布式图计算过程中,将对应的生命周期为所述持久保存的数据保存在该计算节点的所述持久内存中;
在对图数据进行分布式图计算过程中,在对所述持久内存中对应的生命周期为读取后删除的数据进行读取之后,将对应的生命周期为读取后删除的数据删除;
在对图数据进行分布式图计算过程中,在删除检查点标识之后,将与删除的所述检查点标识关联的、且对应的生命周期为跟随检查点标识保存的数据删除。
10.一种数据恢复方法,其特征在于,所述方法包括:
在持久内存中成功存储本次检查点数据的情况下,发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;
接收本次检查点对应的检查点标识,所述检查点标识是确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下生成的;
将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
接收用于指示数据恢复的恢复消息,所述恢复消息包括所述检查点标识;
根据所述检查点标识,从持久内存中获取关联的本次检查点数据;
基于所述本次检查点数据进行数据恢复。
12.一种数据恢复方法,其特征在于,所述方法包括:
从计算节点在持久内存中成功存储本次检查点数据的情况下,向主计算节点发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;
主计算节点在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;
主计算节点将所述检查点标识发送给从计算节点;
从计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的从计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
13.一种数据恢复装置,其特征在于,所述装置包括:
第一接收模块,被配置为接收分布式图计算系统中的计算节点发送的通知消息,所述通知消息表征对应的计算节点在持久内存中成功存储本次检查点数据;
生成模块,被配置为在确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下,生成本次检查点对应的检查点标识;
第一发送模块,被配置为将所述检查点标识发送给各个计算节点,以使所述各个计算节点将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于对应的计算节点在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
14.一种数据恢复装置,其特征在于,所述装置包括:
第三发送模块,被配置为在持久内存中成功存储本次检查点数据的情况下,发送表征对应的计算节点在持久内存中成功存储本次检查点数据的通知消息;
第二接收模块,被配置为接收本次检查点对应的检查点标识,所述检查点标识是确定分布式图计算系统中的所有计算节点均在各自的持久内存中成功存储本次检查点数据的情况下生成的;
关联模块,被配置为将所述检查点标识与持久内存中存储的本次检查点数据进行关联,关联后的本次检查点数据用于在获取到下一次检查点对应的检查点标识之前执行恢复时的数据恢复。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-9中任一项所述方法的步骤或者实现权利要求10-11中任一项所述方法的步骤。
16.一种电子设备,其特征在于,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现权利要求1-9中任一项所述方法的步骤或者实现权利要求10-11中任一项所述方法的步骤。
CN202311016455.8A 2023-08-11 2023-08-11 数据恢复方法、装置、介质及电子设备 Pending CN117056123A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311016455.8A CN117056123A (zh) 2023-08-11 2023-08-11 数据恢复方法、装置、介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311016455.8A CN117056123A (zh) 2023-08-11 2023-08-11 数据恢复方法、装置、介质及电子设备

Publications (1)

Publication Number Publication Date
CN117056123A true CN117056123A (zh) 2023-11-14

Family

ID=88656627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311016455.8A Pending CN117056123A (zh) 2023-08-11 2023-08-11 数据恢复方法、装置、介质及电子设备

Country Status (1)

Country Link
CN (1) CN117056123A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687845A (zh) * 2024-02-04 2024-03-12 成都佰维存储科技有限公司 上电恢复方法、装置、可读存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687845A (zh) * 2024-02-04 2024-03-12 成都佰维存储科技有限公司 上电恢复方法、装置、可读存储介质及电子设备
CN117687845B (zh) * 2024-02-04 2024-06-11 成都佰维存储科技有限公司 上电恢复方法、装置、可读存储介质及电子设备

Similar Documents

Publication Publication Date Title
US9740582B2 (en) System and method of failover recovery
US8332367B2 (en) Parallel data redundancy removal
JP6799652B2 (ja) 情報を処理するための方法及び装置
US20190215313A1 (en) Implementing Secure Communication In A Distributed Computing System
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
US20190213085A1 (en) Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System
US9158699B2 (en) Memory management techniques
US8510751B2 (en) Optimizing workflow engines
US20190213080A1 (en) Implementing Clone Snapshots In A Distributed Storage System
CN111801661A (zh) 多主机分布式数据管理系统中的事务操作
US10572178B2 (en) Expiration handling for block level backup of virtual machines
WO2024087875A1 (zh) 内存管理方法、装置、介质及电子设备
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
CN117056123A (zh) 数据恢复方法、装置、介质及电子设备
US10579520B2 (en) Multi-ring shared, traversable, and dynamic advanced database
CN111338834B (zh) 数据存储方法和装置
CN113885780A (zh) 数据同步方法、装置、电子设备、系统和存储介质
CN110781137A (zh) 分布式系统的目录读取方法、装置、服务器和存储介质
US8341368B2 (en) Automatic reallocation of structured external storage structures
CN115136133A (zh) 按需代码执行的单次使用执行环境
US10031668B2 (en) Determining status of a host operation without accessing the host in a shared storage environment
US20240078221A1 (en) Systems and methods of modeling and querying dynamic temporal graph on massive parallel graph processing and storage engine
CN114925078A (zh) 数据更新方法、系统、电子设备及存储介质
US20220027335A1 (en) Active-active system index management
US11561957B2 (en) In-place garbage collection for state machine replication

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