一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据的恢复方法、计算设备及存储介质与流程

2021-12-14 23:13:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种数据的恢复方法、计算设备及存储介质。


背景技术:

2.数据库内存分离架构是在云原生数据库存储计算分离的基础上演进的云原生架构。在该数据库内存分离架构中,逻辑管理上本地内存和分离内存还是统一管理的,那么在计算节点崩溃以后,由于计算节点的重启会导致本地内存也随之清空,从而使得分离内存中的状态也不再完整,需要分离内存随计算节点一起重启,依赖存储的状态进行崩溃恢复。但这种方式的恢复浪费了分离内存的独立生命周期,且数据恢复过程较慢。


技术实现要素:

3.本技术的多个方面提供一种数据的恢复方法、计算设备及存储介质,用以能够有效利用分离内存中的数据,较为快速地进行数据恢复。
4.本技术实施例提供一种数据的恢复方法,包括:对本地内存节点进行数据写入,根据对应的写入操作,生成并存储用于记录所述写入操作的记录信息;将本地内存节点中的写入数据写入到远程内存节点中;生成并存储第一定位信息,第一定位信息用于定位已写入到所述远程内存节点中写入数据;在计算节点异常的情况下,根据所述第一定位信息以及所述记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
5.本技术实施例还提供一种计算设备,包括:存储器、处理器;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:对本地内存节点进行数据写入,根据对应的写入操作,生成并存储用于记录所述写入操作的记录信息;将本地内存节点中的写入数据写入到远程内存节点中;生成并存储第一定位信息,第一定位信息用于定位已写入到所述远程内存节点中写入数据;在计算节点异常的情况下,根据所述第一定位信息以及所述记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
6.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
7.本技术实施例还提供一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现上述方法中的步骤。
8.本技术实施例还提供一种数据的恢复系统,包括:第一设备以及第二设备;所述第一设备,发送数据写入请求至第二设备;所述第二设备,根据接收到的写入请求,对本地内存节点进行数据写入,根据对应的写入操作,生成并存储用于记录所述写入操作的记录信息;将本地内存节点中的写入数据写入到远程内存节点中;生成并存储第一定位信息,第一定位信息用于定位已写入到所述远程内存节点中写入数据;在计算节点异常的情况下,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
9.在本技术实施例中,对本地内存节点进行数据写入,根据对应的写入操作,生成并存储用于记录写入操作的记录信息;将本地内存节点中的写入数据写入到远程内存节点中;生成并存储第一定位信息,第一定位信息用于定位已写入到远程内存节点中写入数据;在计算节点异常的情况下,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
10.其中,在计算节点异常的情况下,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复,使得无需再对远程内存节点中已经写入的数据进行恢复,从而保留了远程内存节点中的写入数据,维持了远程内存节点的生命周期。有效利用了远程内存节点的生命周期,减少了数据的恢复量,大大提高了数据恢复效率。
附图说明
11.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
12.图1为本技术一示例性实施例的数据的恢复方法的流程示意图;
13.图2为本技术一示例性实施例的数据恢复的示意图;
14.图3为本技术一示例性实施例的数据的恢复系统的结构示意图;
15.图4为本技术一示例性实施例的数据的恢复方法的流程示意图;
16.图5为本技术一示例性实施例提供的数据的恢复装置的结构示意图;
17.图6为本技术一示例性实施例提供的计算设备的结构示意图。
具体实施方式
18.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.根据前文所述可知,计算节点,如cpu(中央处理器,central processing unit),崩溃时,重启该计算节点的同时,其本地内存和分离内存由于重启而被清空,然后依赖现有技术进行数据恢复虽然可以使得将数据恢复到一个一致状态。但这种方式应用在分离内存架构中时,不能有效的利用分离内存中的已存储数据进行加速数据恢复,且分离内存中的数据需要重置。
20.基于此,本技术实施例提供了一种数据的恢复方法、计算设备及存储介质,可以能够有效利用分离内存中的数据,较为快速地进行数据恢复。
21.下面结合方法实施例,针对数据的恢复过程进行详细说明。
22.图1为本技术一示例性实施例的一种数据的恢复方法的流程示意图。本技术实施例提供的该方法100由计算设备执行,如,服务器等。该方法100包括以下步骤:
23.101:对本地内存节点进行数据写入,根据对应的写入操作,生成并存储用于记录写入操作的记录信息。
24.102:将本地内存节点中的写入数据写入到远程内存节点中。
shared storage,持久化共享存储)中,完成事务递交,即执行步骤213:事务递交,至存储设备203,更具体的是可以是写入存储设备203中的预写日志2031(write

ahead log,预写日志)中。
39.此外,存储设备203在成功存储了上述日志后,可以返回确认消息至日志缓存2014,以确保日志成功写入到存储设备203中。
40.102:将本地内存节点中的写入数据写入到远程内存节点中。
41.其中,远程内存节点可以是指部署在其它物理主机上的内存。如图2所示中的远程内存节点202。
42.例如,根据前文所述,如图2所示,将本地缓存池2012中的已修改的内存页2011(可以是多个内存页)写入到远程内存节点202中对应的缓存池内。
43.具体的,将本地内存节点中的写入数据写入到远程内存节点中,包括:将写入数据所在本地内存节点中的对应内存页写入到本地链表中;通过本地链表,将对应内存页写入到远程内存节点中。
44.其中,本地链表是位于如图2所示的本地计算节点201中的。
45.例如,根据前文所述,如图2所示,通过本地缓存池2012将修改后的内存页挂到本地计算节点201中的本地链表(flush_lbp,也可以称为本地脏页链表)2013中,即执行步骤212:写入修改后的内存页,至本地链表2013。通过本地链表2013将修改后的内存页2011写入到远程内存节点202中,更具体的可以是远程内存节点202中的远程缓存池(remote buffer pool)2021中。
46.此外,可以通过本地中间组件(lft daemon)进行触发,使得写入到远程内存节点。如图2所示,根据前文所述,通过本地链表2013执行步骤214:触发组件,即触发本地中间组件2015来将修改后的内存页2011写入到远程内存节点202中的远程缓存池2021中。即执行步骤215:写入远程内存节点,至远程缓存池2021中。
47.需要说明的是,即使没有中间组件也是可以进行远程内存节点的数据写入的。
48.另,如图2所示,还可以通过本地链表2013向事务管理器204执行步骤223:发送事务结果,即修改事务确认。并通过事务管理器204返回至用户的电脑,告知用户修改事务确认。此时,日志缓存2014已经完成了事务递交。
49.103:生成并存储第一定位信息。
50.其中,第一定位信息是指用于定位已写入到远程内存节点中写入数据的信息,如checkpoint(检查点)。该检查点表示为该位点以前的数据,均已进行了存储。
51.例如,根据前文所述,在本地物理主机上,在将本地内存节点中修改后的内存页写入至远程内存节点中的时候,可以在预置数量的内存页已写入到远程内存节点中后,进行设置l1 checkpoint,表示为该位点以前的数据,均已经进行了远程内存节点的存储。该l1 checkpoint可以随着写入过程的推进而更新,直至数据库异常需要进行数据恢复。
52.具体的,生成并存储用于定位已写入到远程内存节点中写入数据的第一定位信息,包括:根据已写入到远程内存节点中的内存页,确定第一定位信息;将第一定位信息存储至远程内存节点中。
53.例如,根据前文所述,在将本地内存节点中修改后的内存页写入至远程内存节点中的远程缓存池中的时候,可以在预置数量的内存页已写入到远程内存节点中的远程缓存
池后,进行设置l1 checkpoint,表示为该位点以前的数据,均已经进行了远程内存节点的存储。该l1 checkpoint可以随着写入过程的推进而更新,直至数据库异常需要进行数据恢复。如图2所示,可以通过本地链表2013设置l1 checkpoint,然后存储至远程内存节点202中的第一定位信息缓存(checkpoints)2022中。或者,通过本地链表2013触发本地中间组件2015设置l1 checkpoint,然后存储至远程内存节点202中的第一定位信息缓存(checkpoints)2022中。即执行步骤216:存储第一定位信息,至第一定位信息缓存(checkpoints)2022中。
54.104:在计算节点异常的情况下,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
55.其中,计算节点位于本地,即本地计算节点:本地物理主机上部署了该本地计算节点。
56.计算节点异常是指本地计算节点异常,如本地计算节点断电或者cpu对应软件崩溃。
57.例如,根据前文所述,当本地的cpu崩溃时,如断电后,重新上电进行重启。cpu重启后,获取远程内存节点中的l1 checkpoint,以及获取存储的redo日志。然后根据l1checkpoint确定出已经写入到远程内存节点的内存页,然后根据redo日志查找后续未写入到远程内存节点中的内存页对应的操作,进行数据恢复。具体的恢复过程与前文所述的方式相似,就不再赘述,仅说明,在恢复的过程也是如图2所示从步骤210开始,修改内存页中的数据。
58.应理解,对于存储数据其恢复过程也是相似的,就不再赘述。
59.需要说明的是,为了更好地进行数据恢复,对于内存页是具有对应标识的,如id。日志也可以具有对应的标识,如id。且日志的标识与内存页的标识可以相对应。由此,可以根据checkpoint确定内存页的id,然后查找该id后续的redo日志进行数据恢复。
60.具体的,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复,包括:读取远程内存节点中的第一定位信息以及读取存储设备中的修改操作日志;根据第一定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待写入至远程内存节点。
61.例如,根据前文所述,如图2所示,当本地的cpu崩溃时,如断电后,重新上电进行重启。cpu重启后,读取远程内存节点202中第一定位信息缓存2022中存储的l1checkpoint,以及读取存储设备203中的redo日志,具体的可以是从存储设备203中的预写日志2031中读取redo日志。然后根据l1 checkpoint确定出已经写入到远程内存节点202的内存页2011的id,然后查找该id后续的redo日志。根据redo日志查找后续未写入到远程内存节点202中的内存页2011对应的操作,进行数据恢复。具体的恢复过程与前文所述的方式相似,就不再赘述,仅说明,在恢复的过程也是如图2所示从步骤210开始,修改内存页2011中的数据,直至存储到远程内存节点202中的远程缓存池2021中。
62.需要说明的是,通过l1 checkpoint可以使得分离内存(即远程内存节点)具有独立的恢复能力,分离内存可以独立崩溃恢复crash recovery,并且继续使用。极大的加速了崩溃恢复crash recovery和性能恢复的过程。
checkpoint,然后存储至存储设备203中的第二定位信息(checkpoints)2032中。即执行步骤220:存储第二定位信息,至存储设备203中的第二定位信息(checkpoints)2032中。
73.其中,根据记录信息以及第二定位信息,对远程内存节点中未写入存储设备中的写入数据进行恢复,包括:读取存储设备中的修改操作日志以及第二定位信息;根据第二定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待存储至存储设备。
74.其中,远程内存节点异常可以是指单独的远程内存节点异常(如,断电等)或,本地计算节点异常 远程内存节点异常,即两者同时异常。
75.例如,根据前文所述,如图2所示,当远程内存节点崩溃时,如断电后,重新上电进行重启。重启后,本地cpu读取存储设备203中第二定位信息2032中存储的l2 checkpoint,以及读取存储设备203中的redo日志,具体的可以是从存储设备203中的预写日志2031中读取redo日志。然后根据l2 checkpoint确定出已经写入到存储设备203的内存页2011的id,然后查找该id后续的redo日志。根据redo日志查找后续未写入到存储设备203中的内存页2011对应的操作,进行数据恢复。具体的恢复过程与前文所述的方式相似,就不再赘述,仅说明,在恢复的过程也是如图2所示从步骤210开始,修改内存页2011中的数据,直至存储到存储设备203的数据2033中。
76.需要说明的是,当成功将数据写入存储设备203后,可以删除掉存储设备203中对应的日志。如,如图2所示,通过远程中间组件2024触发本地中间组件2015删除存储设备203中的预写日志2031中的对应日志,如redo日志。然后,通过本地中间组件2015对存储设备203中的预写日志2031中的对应日志删除。即执行了步骤221:触发组件删除预写日志,以及步骤222:删除预置日志。
77.由此,通过上述l2 checkpoint可以在远程内存节点异常的时候,进行数据恢复。
78.图3为本技术一示例性实施例提供的一种数据的恢复系统的结构示意图。如图3所示,该系统300可以包括:第一设备301以及第二设备302。
79.其中,第一设备301可以是有一定计算能力的设备,可以实现向第二设备302发送数据的功能,也可以接收第二设备302发送的数据。第一设备301的基本结构可以包括:至少一个处理器。处理器的数量可以取决于具有一定计算能力装置的配置和类型。具有一定计算能力装置也可以包括存储器,该存储器可以为易失性的,例如ram,也可以为非易失性的,例如只读存储器(read

only memory,rom)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(operating system,os)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,具有一定计算能力装置还包括一些基本配置,例如网卡芯片、io总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、输入笔等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,第一设备301可以为智能终端,例如,手机、台式电脑、笔记本、平板电脑等。
80.第二设备302是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据恢复的设备。在物理实现上,第二设备302可以是任何能够提供计算服务,响应服务请求,并进行数据获取,还可以进行数据恢复的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第二设备302的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
81.具体的,第一设备301,发送数据写入请求至第二设备。
82.具体的,第二设备302,根据接收到的写入请求,对本地内存节点进行数据写入,根据对应的写入操作,生成并存储用于记录写入操作的记录信息;将本地内存节点中的写入数据写入到远程内存节点中;生成并存储第一定位信息,第一定位信息用于定位已写入到远程内存节点中写入数据;在计算节点异常的情况下,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
83.其中,计算节点位于本地。
84.具体的,第二设备302,接收数据修改请求,根据修改请求,对本地内存节点中对应内存页中的对应数据进行修改;针对对应数据的修改操作,生成修改操作日志,并将修改操作日志进行存储。
85.第一设备301,发送数据修改请求至第二设备302。
86.具体的,第二设备302,将修改操作日志存储至日志缓存中,并通过日志缓存,将修改操作日志存储至存储设备中。
87.具体的,第二设备302,根据已写入到所述远程内存节点中的内存页,确定第一定位信息;将第一定位信息存储至所述远程内存节点中。
88.具体的,第二设备302,读取远程内存节点中的第一定位信息以及读取存储设备中的修改操作日志;根据第一定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待写入至远程内存节点。
89.此外,第二设备302,将远程内存节点中的写入数据存储至存储设备;生成并存储第二定位信息,第二定位信息用于定位已存储到存储设备中写入数据;在远程内存节点异常的情况下,根据记录信息以及第二定位信息,对远程内存节点中未写入存储设备中的写入数据进行恢复。
90.具体的,第二设备302,根据已写入到存储设备中的内存页,确定第二定位信息;将第二定位信息存储至存储设备中。
91.具体的,第二设备302,读取存储设备中的修改操作日志以及第二定位信息;根据第二定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待存储至存储设备。
92.需要说明的是,在系统300中未能完全阐述的内容请参见前文方法100中的内容,其具体的实施方式也请参见前文所述的方法100的具体实施方式,此处就不再赘述。
93.在本技术实施例的数据恢复的场景中,如图3所示,用户可以通过第一设备301,如电脑,执行步骤310:发送数据修改请求至第二设备302,如数据库服务器,该请求中可以携带上述用于数据修改的sql语句,或者,该sql语句即是数据修改请求。数据库服务器接收到该请求后,可以根据对该请求中的sql语句的解析调用对应的执行引擎进行数据修改。对应的执行引擎可以通过本地物理主机上的事务管理器204(transaction manager)去对本地内存中的数据进行修改。然后记录下该修改过程,即对应的修改操作,如数据a修改为数据b。
94.数据库服务器的本地物理主机上的事务管理器204接收到该数据修改的指令,根据该指令,修改本地内存中对应内存页内的数据,即执行步骤210:修改内存页中的数据。然
后生成对应的redo(重做)日志,从而在该日志中记录对应的修改操作。将生成的redo日志存储在本地计算节点201中的日志缓存(log buffer)2014中,即执行步骤211:写入修改操作日志,至日志缓存2014中。然后通过日志缓存2014,将redo日志写入到存储设备203中,完成事务递交,即执行步骤213:事务递交,至存储设备203,更具体的是可以是写入存储设备203中的预写日志2031中。
95.通过本地缓存池2012将修改后的内存页挂到本地计算节点201中的本地链表2013中,即执行步骤212:写入修改后的内存页,至本地链表2013。通过本地链表2013执行步骤214:触发组件,即触发本地中间组件2015来将修改后的内存页2011写入到远程内存节点202中的远程缓存池2021中。即执行步骤215:写入远程内存节点,至远程缓存池2021中。还可以通过本地链表2013向事务管理器204执行步骤223:发送事务结果,即修改事务确认。并通过事务管理器204返回至用户的电脑,告知用户修改事务确认,即执行步骤311:发送修改确认结果。此时,日志缓存2014已经完成了事务递交。
96.在将本地内存节点中修改后的内存页写入至远程内存节点中的远程缓存池中的时候,可以通过本地链表2013触发本地中间组件2015设置l1 checkpoint,然后存储至远程内存节点202中的第一定位信息缓存(checkpoints)2022中。即执行步骤216:存储第一定位信息,至第一定位信息缓存(checkpoints)2022中。
97.当本地的cpu崩溃时,如断电后,重新上电进行重启。cpu重启后,读取远程内存节点202中第一定位信息缓存2022中存储的l1 checkpoint,以及读取存储设备203中的redo日志,具体的可以是从存储设备203中的预写日志2031中读取redo日志。然后根据l1 checkpoint确定出已经写入到远程内存节点202的内存页2011的id,然后查找该id后续的redo日志。根据redo日志查找后续未写入到远程内存节点202中的内存页2011对应的操作,进行数据恢复。
98.通过触发本地中间组件2015将内存页2011挂到远程链表2023中,即执行步骤217:写入远程内存节点中的内存页2011,至远程链表2023。通过远程链表2023,触发远程中间组件2024写入内存页2011对应的数据至存储设备203,即执行步骤218:触发组件写入数据。通过远程中间组件2024将对应的数据写入到存储设备203中的数据2033中,即通过远程中间组件执行步骤219:写入数据,至存储设备203中的数据2033。
99.通过在将远程内存节点202中的内存页2011写入至存储设备203的时候,可以在预置数量的内存页2011已写入到存储设备203后,进行设置l2 checkpoint。可以通过远程链表2024触发远程中间组件2024设置l2 checkpoint,然后存储至存储设备203中的第二定位信息(checkpoints)2032中。即执行步骤220:存储第二定位信息,至存储设备203中的第二定位信息(checkpoints)2032中。
100.当远程内存节点崩溃时,如断电后,重新上电进行重启。重启后,本地cpu读取存储设备203中第二定位信息2032中存储的l2 checkpoint,以及读取存储设备203中的redo日志。根据redo日志查找后续未写入到存储设备203中的内存页2011对应的操作,进行数据恢复。
101.此处未详细记载的内容可以参考前文所述的内容,就不再赘述。
102.在上述本实施例中,第一设备301、第二设备302进行网络连接。若第一设备301、第二设备302是通信连接,该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td

scdma、cdma2000、utms)、4g(lte)、4g (lte )、wimax、5g等中的任意一种。
103.根据相似的发明构思,本技术一示例性实施例的一种数据的恢复方法。本技术实施例提供的该方法由计算设备执行,如,服务器等。如图4所示,该方法400包括以下步骤:
104.401:将远程内存节点中的写入数据存储至存储设备。
105.402:生成并存储第二定位信息。
106.其中,第二定位信息用于定位已存储到存储设备中写入数据。
107.403:在远程内存节点异常的情况下,根据记录信息以及第二定位信息,对远程内存节点中未写入存储设备中的写入数据进行恢复。
108.具体的,将远程本地内存中的写入数据存储至存储设备,包括:将写入数据所在远程内存节点中的对应内存页写入到远程链表中;通过远程链表,将对应内存页存储至存储设备。
109.具体的,生成并存储第二定位信息,包括:根据已写入到存储设备中的内存页,确定第二定位信息;将第二定位信息存储至存储设备中。
110.具体的,根据记录信息以及第二定位信息,对远程内存节点中未写入存储设备中的写入数据进行恢复,包括:读取存储设备中的修改操作日志以及第二定位信息;根据第二定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待存储至存储设备。
111.需要说明的是,由于步骤401

403的具体实施方式与前文阐述的方法200的具体实施方式相似,这里就不再赘述。
112.该方法400未能详尽的内容请参考前文,就不再赘述。
113.图5为本技术一示例性实施例提供的一种数据的恢复装置的结构框架示意图。该装置500可以应用于服务器。该装置500包括:生成模块501、写入模块502、恢复模块503;以下针对各个模块的功能进行详细的阐述:
114.生成模块501,用于对本地内存节点进行数据写入,根据对应的写入操作,生成并存储用于记录写入操作的记录信息。
115.写入模块502,用于将本地内存节点中的写入数据写入到远程内存节点中。
116.生成模块501,用于生成并存储第一定位信息,第一定位信息用于定位已写入到远程内存节点中写入数据。
117.恢复模块503,用于在计算节点异常的情况下,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
118.其中,计算节点位于本地。
119.具体的,生成模块501,包括:修改单元,用于接收数据修改请求,根据修改请求,对本地内存节点中对应内存页中的对应数据进行修改;生成单元,用于针对对应数据的修改操作,生成修改操作日志,并将修改操作日志进行存储。
120.具体的,生成单元,用于将修改操作日志存储至日志缓存中,并通过日志缓存,将修改操作日志存储至存储设备中。
121.具体的,写入模块502,包括:写入单元,用于将写入数据所在本地内存节点中的对应内存页写入到本地链表中;第一写入单元,用于通过本地链表,将对应内存页写入到远程内存节点中。
122.具体的,生成模块501,包括:确定单元,用于根据已写入到远程内存节点中的内存页,确定第一定位信息;第一存储单元,用于将第一定位信息存储至远程内存节点中。
123.具体的,恢复模块503,包括:读取单元,用于读取远程内存节点中的所述第一定位信息以及读取存储设备中的修改操作日志;恢复单元,用于根据第一定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待写入至远程内存节点。
124.此外,该装置500还包括:存储模块,用于将远程内存节点中的写入数据存储至存储设备;生成模块501,用于生成并存储第二定位信息,第二定位信息用于定位已存储到存储设备中写入数据;恢复模块503,用于在远程内存节点异常的情况下,根据记录信息以及第二定位信息,对远程内存节点中未写入存储设备中的写入数据进行恢复。
125.具体的,存储模块,包括:第二写入单元,用于将写入数据所在远程内存节点中的对应内存页写入到远程链表中;第二存储单元,用于通过远程链表,将对应内存页存储至存储设备。
126.具体的,确定单元,用于根据已写入到所述存储设备中的内存页,确定第二定位信息;第一存储单元,用于将第二定位信息存储至存储设备中。
127.具体的,读取单元,用于读取存储设备中的修改操作日志以及第二定位信息;恢复单元,用于根据第二定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待存储至存储设备。
128.本装置500中未能详尽的内容请参考前文所述,就不再赘述。
129.以上描述了图5所示的装置500的内部功能和结构,在一个可能的设计中,图5所示的装置500的结构可实现为计算设备,如,服务器。如图6所示,该设备600可以包括:存储器601、处理器602;
130.存储器601,用于存储计算机程序。
131.处理器602,用于执行计算机程序,以用于:对本地内存节点进行数据写入,对应的写入操作,生成并存储用于记录写入操作的记录信息;生成并存储第一定位信息,第一定位信息用于定位已写入到远程内存节点中写入数据;在计算节点异常的情况下,根据第一定位信息以及记录信息,对本地内存节点中未写入到远程内存节点中的写入数据进行恢复。
132.具体的,处理器602,具体用于:接收数据修改请求,根据修改请求,对本地内存节点中对应内存页中的对应数据进行修改;针对对应数据的修改操作,生成修改操作日志,并将修改操作日志进行存储。
133.具体的,处理器602,具体用于:将修改操作日志存储至日志缓存中,并通过日志缓存,将修改操作日志存储至存储设备中。
134.具体的,处理器602,具体用于:将写入数据所在本地内存节点中的对应内存页写入到本地链表中;通过本地链表,将对应内存页写入到远程内存节点中。
135.具体的,处理器602,具体用于:根据已写入到远程内存节点中的内存页,确定第一定位信息;将第一定位信息存储至远程内存节点中。
136.具体的,处理器602,具体用于:读取远程内存节点中的所述第一定位信息以及读取存储设备中的修改操作日志;根据第一定位信息确定未写入的写入数据,并根据修改操
作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待写入至远程内存节点。
137.此外,处理器602,还用于:将远程内存节点中的写入数据存储至存储设备;生成并存储第二定位信息,第二定位信息用于定位已存储到存储设备中写入数据;在远程内存节点异常的情况下,根据记录信息以及第二定位信息,对远程内存节点中未写入存储设备中的写入数据进行恢复。
138.具体的,处理器602,具体用于:将写入数据所在远程内存节点中的对应内存页写入到远程链表中;通过远程链表,将对应内存页存储至存储设备。
139.具体的,处理器602,具体用于:根据已写入到存储设备中的内存页,确定第二定位信息;将第二定位信息存储至存储设备中。
140.具体的,处理器602,具体用于:读取存储设备中的修改操作日志以及第二定位信息;根据第二定位信息确定未写入的写入数据,并根据修改操作日志在本地内存节点中的对应内存页中对未写入数据进行恢复,以使恢复后的写入数据等待存储至存储设备。
141.另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1

2方法实施例中一种数据的恢复方法的步骤。
142.另外,本发明实施例提供了一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现图1

2方法实施例中一种数据的恢复方法的步骤。
143.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102、103等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
144.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
145.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
146.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理
器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
147.这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
148.这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
149.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
150.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
151.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
152.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献