CN114064357A - 数据备份方法、装置、电子设备及存储介质 - Google Patents
数据备份方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114064357A CN114064357A CN202111339699.0A CN202111339699A CN114064357A CN 114064357 A CN114064357 A CN 114064357A CN 202111339699 A CN202111339699 A CN 202111339699A CN 114064357 A CN114064357 A CN 114064357A
- Authority
- CN
- China
- Prior art keywords
- address
- backup
- data
- memory
- time
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例公开了一种数据备份方法、装置、电子设备及存储介质。该方法包括:从起始地址开始向内存中写入数据;在写到内存的备份地址时,将起始地址到备份地址之间的数据备份;将备份地址作为新的起始地址,并重新确定内存的备份地址,返回执行从起始地址开始向内存中写入数据的操作。相比现有技术中在判断到内存用满后再进行数据备份,备份时候耗时较长并阻塞其它进程;本发明实施例提供的技术方案通过设置备份地址,将起始地址与备份地址之间的数据进行备份,并将备份地址作为新的起始地址进行写入数据,使本段数据备份与下一段数据写入同时进行,减少了数据备份的额外等待时间,提高数据写入和备份的效率,避免了系统卡顿。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据备份方法、装置、电子设备及存储介质。
背景技术
共享内存在多进程信息传输中或缓存系统调试信息等地方经常被用到,其具有存在数据量大、高并发访问等特点。关于共享内存,一般都会记录共享内存开辟的大小、互斥信号量进行访问的边界、并发控制。通常情况下,共享内存的可写界线等于内存大小,对于写入共享内存数据,传统的备份方法是:在判断内存写满后触发数据备份,这样单次备份的数据量较大,备份耗时较长,备份过程会阻塞其它进程,容易导致各种系统异常。但在代码量大、高并发的写、大数据量情况下,这种备份方法使得数据的写入和备份效率偏低,容易出现越界、系统卡顿问题。
发明内容
本发明实施例提供一种数据备份方法、装置、电子设备及存储介质及系统,以实现减少数据备份的额外等待时间,提高数据写入和备份的效率,避免系统卡顿。
第一方面,本发明实施例提供了一种数据备份方法,包括:
从起始地址开始向内存中写入数据;
在写到所述内存的备份地址时,将所述起始地址到所述备份地址之间的数据备份;
将所述备份地址作为新的起始地址,并重新确定所述内存的备份地址,返回执行所述从起始地址开始向内存中写入数据的操作。
第二方面,本发明实施例提供了一种数据备份装置,包括:
第一写入模块,用于从起始地址开始向内存中写入数据;
备份模块,用于在写到所述内存的备份地址时,将所述起始地址到所述备份地址之间的数据备份;
第二写入模块,用于将所述备份地址作为新的起始地址,并重新确定所述内存的备份地址,返回执行所述从起始地址开始向内存中写入数据的操作。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据备份方法。
第四方面,本发明实施例还提供了一种包含计算机可读存储介质,该程序被处理器执行时实现如第一方面所述的数据备份方法。
本发明实施例公开了一种数据备份方法、装置、电子设备及存储介质。该方法包括:从起始地址开始向内存中写入数据;在写到内存的备份地址时,将起始地址到备份地址之间的数据备份;将备份地址作为新的起始地址,并重新确定内存的备份地址,返回执行从起始地址开始向内存中写入数据的操作。相比现有技术中在判断到内存用满后再进行数据备份,备份时候耗时较长并阻塞其它进程,容易出现各种系统异常的情况;本发明实施例提供的技术方案通过设置备份地址,将起始地址与备份地址之间的数据进行备份,并将备份地址作为新的起始地址进行写入数据,使本段数据备份与下一段数据写入同时进行,减少了数据备份的额外等待时间,提高数据写入和备份的效率,避免了系统卡顿。
附图说明
图1为本发明实施例一提供的一种数据备份方法的流程图;
图2为本发明实施例一提供的数据备份方法中重新确定备份地址的示例图;
图3为本发明实施例一提供的数据备份方法中数据备份过程的示例图;
图4为本发明实施例二提供的一种数据备份装置的结构框图;
图5为本发明实施例三提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据备份方法的流程图,本实施例可适用于在向内存写入数据的过程中进行数据备份的情况,该方法可以由数据备份装置来执行,并一般集成在电子设备中。电子设备包括但不限定于:台式计算机、笔记本电脑、智能手机以及服务器等。如图1所示,该方法具体包括如下步骤:
S110、从起始地址开始向内存中写入数据。
其中,内存可以指一段用于写入数据的存储空间,本实施例中的内存可以为共享内存(Shared Memory),即可被不同的中央处理器(Central Processing Unit,CPU)访问的大容量内存。起始地址具体可以理解为数据开始写入的地址。本实施例中,可以分次向内存中写入数据,每当有写入的数据需要备份时,可以认为是一次写入数据结束。对于所开辟的内存,第一次向内存写数据时,内存的开辟起始地址,例如内存中的第一个字节可以作为起始地址;若为第二次或第n(n为大于2的整数)次向内存写数据,则起始地址可以根据上一次数据写到的位置重新确定。
S120、在写到内存的备份地址时,将起始地址到备份地址之间的数据备份。
其中,备份地址具体可以理解为数据备份的结点,在一次数据写入过程中,从起始地址到备份地址之间为备份大小。
具体的,在每次写到内存的备份地址时,将本次的起始地址到备份地址之间的数据进行备份。需要说明的是,每次写到备份地址后进行数据备份,并不影响继续向内存中写入数据。
S130、将备份地址作为新的起始地址,并重新确定内存的备份地址,返回执行从起始地址开始向内存中写入数据的操作。
其中,将本次的备份地址作为下一次数据写入的起始地址。新的备份地址可以理解为下一次数据备份的结点,用于确定下一次写入的数据应何时被备份。例如,新的备份地址可以等于下一次备份的起始地址加上备份大小,该备份大小可以与本次备份数据的备份大小保持一致,也可以是动态调整的,例如,根据备份数据的速度和写入数据的速度动态调整,使得数据的备份和写入获得较好的平衡。
示例性的,第一次写入数据,从起始地址(0000)写到备份地址(0900),然后将写入0000-0900的900个字节的数据备份,将备份地址(0900)作为新的起始地址;
第二次写入数据,需要重新确定备份地址,例如为新的起始地址(0900)加上备份大小,备份大小例如与第一次的备份大小相同为900,则新的备份地址为0900+900=1800;在此基础上,在将0000-0900的数据备份的过程中,还可以从0900继续写入数据,直至写到1800时,可将写入0900-1800的900个字节的数据备份,并将本次的备份地址(1800)作为新的起始地址,继续写入数据。以此类推,数据的备份和写入可以独立同步进行。
可以清楚的是,本实施例中的内存可以是循环缓冲区(buf),当数据写到内存的指定的边界位置时,可以返回从开辟起始地址(0000)继续写入数据,即,对于循环buf,指定的边界位置之后的下一个字节为开辟起始地址。其中,指定的边界位置可以是内存的开辟结束地址,也可以是开辟结束地址之前的指定地址,也称为边界地址,例如为开辟结束地址提前1个字节,从而预留一定的内存空间,这段内存不支持数据写入,从而有效防止越界。示例性的,假如开辟大小为1000,开辟的内存为0000-0999,指定的边界位置为0998,则在上述示例中,第二次写入数据时,备份地址1800需要换算成循环buf中的位置,即,从0900写到0998,然后会返回从0000继续写入数据,直至写到0802(即1800-998),将第二次写入的数据备份。
具体的,当每次写到内存的备份地址时,可以通过第一线程对本次写入的数据进行备份,可以通过另一个线程,即通过第二线程执行从新的起始地址(即本次的备份地址)开始向内存中继续写入数据的操作。第一线程和第二线程是独立执行的,本次数据的备份和下一次数据的写入互不影响。也可以是通过后台线程执行数据备份的操作,通过主体流程执行数据的写入操作,主体流程不需要关注数据备份,从而将写入数据和备份数据分开处理;备份的同时不影响继续写数据到内存中。
本发明实施例公开了一种数据备份方法、装置、电子设备及存储介质。该方法包括:从起始地址开始向内存中写入数据;在写到内存的备份地址时,将起始地址到备份地址之间的数据备份;将备份地址作为新的起始地址,并重新确定内存的备份地址,返回执行从起始地址开始向内存中写入数据的操作。相比现有技术中在判断到内存用满后再进行数据备份,备份时候耗时较长并阻塞其它进程,容易出现各种系统异常的情况;本发明实施例提供的技术方案通过设置备份地址,将起始地址与备份地址之间的数据进行备份,并将备份地址作为新的起始地址进行写入数据,使本段数据备份与下一段数据写入同时进行,减少了数据备份的额外等待时间,提高数据写入和备份的效率,避免了系统卡顿。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,从起始地址开始向内存中写入数据的步骤具体可以表述为:在写到内存的边界地址时,若起始地址到备份地址之间的数据备份已完成,则从内存的开辟起始地址继续写入数据。
具体的,用户在开发过程中,在向开辟的内存中写入数据或者处理数据时,有时会忽略数组下标是从0开始,从而出现代码漏洞,发生写越界。本实施例中,在开辟结束地址之前设置边界地址,边界地址具体可以理解为可用于写入数据的结束地址;开辟起始地址具体可以理解为所开辟内存的起点;开辟结束地址具体可以理解为用户开辟内存的终点。开辟起始地址与开辟结束地址之间的内存大小为开辟大小,开辟起始地址与边界地址之间的内存大小为边界大小,开辟大小对用户是透明的,边界大小是用户所知的内存大小。为了防止用户在使用时发生越界的情况,边界地址和开辟结束地址之间预留了内存量。其中,边界地址小于内存的开辟结束地址,边界地址与开辟结束地址之间不支持写入数据。
示例性的,如果开辟了1000字节的内存,数组下标访问范围是0-999,开辟大小1000对用户透明。边界大小<开辟大小,边界大小可以设为998,边界大小是用户所知的。
具体的,在写到内存的边界地址时,表征本次内存量已用到终点。在一次写入数据的过程中,上一次写入内存中的数据已经同时在进行数据备份,如果备份完成,则可以清空对应的内存,用于写入数据。因此,可以把整个内存空间看成可循环使用的,若起始地址到备份地址之间的数据备份已完成,表明前面的内存已空余可使用,则可以从内存的开辟起始地址继续写入数据。
作为本发明实施例的一个可选实施例,在上述实施例的基础上,重新确定内存的备份地址的步骤具体可以表述为:
S131、预测从备份地址写到内存的可写地址的第一时间;
S132、根据第一时间以及备份数据所需的第二时间重新确定内存的备份地址。
其中,可写地址可以理解为在一次数据写入的过程中,在即将写到上一次写入的数据所占用的内存地址之前,预计最多可写到的地址。可以理解的是,可写地址小于内存的开辟结束地址;也可以设置边界地址防止越界,这种情况下,可写地址可以小于或等于内存的边界地址。可写地址用于预测一次从备份地址继续向后写到可写地址的第一时间。从开辟起始地址到可用地址之间的内存表示可写大小,可写大小小于或等于边界大小。
对于循环buf而言,预计一次写入数据所需的第一时间,是指从备份地址写到可写地址所需的时间,其中,可写地址与本次的备份地址所对应的起始地址有关,也可以理解为,可写地址与上一次写入的数据所占用的地址起点(或者上一次写入数据的起始地址,即“旧的”起始地址)有关。例如,上一次是从(旧的)起始地址0900写到边界地址并返回从开辟起始地址0000写到备份地址0802,则在本次写数据的预测过程中,0802作为新的起始地址,预测从0802写到可写地址所需的第一时间,其中,可写地址等于上一次写数据的(旧的)起始地址0900,或者为上一次写入的(旧的)起始地址提前若干字节(例如0900提前8字节,即为0892)。因为在本次写入数据的过程中,上一次写入的数据有可能备份还没完成,预测的目的是,判断是上一次写入的数据的备份速度更快,还是本次写到可写地址的速度更快;如果上一次写入的数据的备份速度更快,则本次写到可写地址时,上一次写入的数据可以完成备份,内存可以被释放,供本次写入数据使用;否则,本次写到可写地址时,需要等待上一次写入的数据备份完成、相应内存被释放之后才可以继续写入数据。
具体的,从备份地址写到可写地址所用的时间,由备份地址与可写地址之间的内存量和数据写入速度有关,从备份地址写到可写地址所用的时间可以由备份地址与可写地址之间的内存量与数据写入速度作商计算获得。而数据写入速度可以参考前段备份数据写入内存的速度确定。
其中,备份数据所需的第二时间与硬盘使用繁忙度和系统环境有关系。本实施例中,备份地址到可写地址之间存在缓存,这段缓存会影响到系统在最繁忙的时候能支持系统多久不存在卡顿。如果缓存太小,系统繁忙时候就会出现卡顿等待备份的情况;如果缓存太大,系统又在悠闲的状态下,就会出现系统经常备份,浪费可用空间。
具体的,比较第一时间以及备份数据所需的第二时间,根据比较第一时间以及第二时间的大小,重新确定内存的备份地址。如果第一时间小于或者接近第二时间,说明相对于数据的写入,数据备份较慢,就会存在系统卡顿的问题,需要调小备份地址;如果第一时间远远大于第二时间,说明相对于数据的写入,备份较快,可以将备份地址调大,减小系统的备份频率;如果第一时间大于第二时间且在预设范围内,说明数据的备份和写入较为稳定,可以保持备份大小不变。
可选的,可写地址与边界地址之间相差预设内存量,或者,可写地址与备份地址对应的起始地址之间相差预设内存量。
其中,可写地址用于预测第一时间,进而根据第一时间与备份数据所需的第二时间,可以确定是否需要调整备份大小。可写地址为边界地址减去预设内存量,或者为备份地址对应的(旧的)起始地址减去预设内存量。
若预设内存量不为零,则表示可写地址与边界地址(或备份地址对应的起始地址)之间可以留一段缓冲,在此基础上,可以可写地址作为本次写入数据的边界限制,即,在本次写入数据的过程中,最多写到可写地址,可写地址到边界地址(或备份地址对应的起始地址)之间预留的一段地址不支持写入数据,从而防止在每次写入数据的过程中发生越界。预设内存量也可以为零,即可写地址与边界地址(或备份地址对应的起始地址)相等,这种情况下,可以直接将边界地址(或备份地址对应的起始地址)作为本次写入数据的边界限制。
需要说明的是,本实施例中,只有在第一次写入的数据被备份时,对第二次写入数据的预测满足可写地址与边界地址之间相差预设内存量,从而约束用户不要写到边界大小;从第二次写入的数据被备份起,对每次写数据的预测都满足:可写地址与备份地址对应的(上一次写数据的)起始地址之间相差预设内存量。
可选的,预测从备份地址写到内存的可写地址的第一时间,包括:
S1311、根据备份地址对应的起始地址到备份地址之间的内存量,以及从备份地址对应的起始地址写到备份地址的时间,计算数据的写入速度。
本步骤中,从备份地址对应的起始地址(即上一次或旧的起始地址)写到备份地址之间的数据写入时间,和这段时间系统运行环境以及具体碰到的应用有关。例如,某内存用于黑匣子记录数据,一段时间出现了频繁的操作,数据写入速度就会很快,写固定大小的时间就很短。该时间需要通过统计进行获取。
具体的,(上一次)起始地址到备份地址之间的内存量与起始地址写到备份地址的时间做商,可以计算得到数据写入速度。
示例性的,若(上一次)起始地址到备份地址之间的内存量表示为K1,从起始地址写到备份地址的时间表示为H1,则计算数据的写入速度V1可以表示为:V1=K1/H1。H1越大表示系统越空闲;H1越小表示系统越繁忙。例如,第一次写入数据,从0000写到0900,用时1s,则V1=900/1=900B/s。
S1312、根据(本次)备份地址到可写地址之间的内存量,以及写入速度,预测从备份地址写到内存的可写地址的第一时间。
具体的,(本次)备份地址到可写地址之间的内存量与写入速度作商,可以将该计算得到的商作为从备份地址写到内存的可写地址的参考值,这里记为第一时间。示例性的,继续接S1311中的举例进行描述,若(本次)备份地址到可写地址之间的内存量表示为K2,由步骤S1311获取写入速度为V1,则预测数据写到可写地址的第一时间H2可以表示为:H2=K2/V1。例如,预测第二次写入数据,从0900写到0990,则H2=(990-900)/900=0.1s。
可选的,根据第一时间以及备份数据所需的第二时间重新确定内存的备份地址,包括:若第一时间大于第二时间,且第一时间与第二时间的差值大于或等于设定阈值,则按照写入数据的方向调整内存的备份地址,以增大单次备份的数据量。
具体的,如果第一时间大于第二时间,当第一时间与第二时间的差值大于或等于设定阈值时,说明备份速度能够满足循环写入的需求,如果备份速度足够快、每次写入数据的时间较长,表明备份地址与可写地址之间的缓存区域较大,系统处在较为悠闲的状态下,就会出现系统经常备份,浪费可用空间的问题。此时,可以按照写入数据的方向,也就是向后调整或者可以理解为地址号增大的方向调整内存的备份地址,从而增大单次备份的数据量,减小系统的备份频率,节省计算资源。
可选的,第一时间与第二时间的差值大于或等于设定阈值,可以设置为第一时间>2倍的第二时间,使得数据的备份和写入获得较好的平衡,充分保证本次写到可写地址时,上一次写入的数据可以完成备份,内存可以被释放,供本次写入数据使用;也可以避免单次备份数据较小,降低备份频率,节省计算资源。
可选的,根据第一时间以及备份数据所需的第二时间重新确定内存的备份地址,包括:若第一时间小于或等于第二时间,或者,第一时间与第二时间的差值小于设定阈值,则按照写入数据的反方向调整内存的备份地址,以减小单次备份的数据量。
备份不影响继续写数据的前提是:备份时间<数据写入可被使用内存(可写地址-备份地址空间)的时间,也就是备份地址到可写地址中间的这段内存越大,可支持更长的备份时间。
具体的,如果第一时间小于或等于第二时间,或者,第一时间与第二时间的差值小于设定阈值,说明备份速度不能满足循环写入的需求,用户写到可写地址后,备份还没完成,很有可能需要等待备份完成才能返回从开辟起始地址继续写数据,备份地址与可写地址之间的缓存区域过小,系统繁忙时候就会出现卡顿等待备份的情况。这种情况下,可以调小备份大小,需要按照写入数据的反方向,也就是向前调整或者可以理解为地址号减小的方向调整内存的备份地址,从而减小单次备份的数据量,避免出现卡顿的情况。
以内存为开辟大小为1000、边界地址为0998、内存为循环buf的情况为例,第一次写入数据,从起始地址(0000)写到备份地址(0900),然后将写入0000-0900的900个字节的数据备份,将备份地址(0900)作为新的起始地址;
对于第二次写入数据,通过预测第一时间重新确定备份地址的过程如下:
首先预测第二次从备份地址0900写到可写地址的第一时间,可写地址可以小于或等于边界地址0998,以相差预设内存量为8为例,则可写地址为0990;
如果0000-0900的数据备份所用的第二时间明显小于从0900写到0990的第一时间,说明备份速度能够满足循环写入的需求,充分保证用户写到可写地址后,可以继续写到边界地址并返回从0000继续写数据,因此,备份大小可以不变,可以为0900+900,在循环buf中新的备份地址即为0802;(如果备份速度足够快,例如第二时间小于第一时间的1/2,则还可以适当增加备份大小,例如将新的备份地址确定为0810,从而增大单次备份量、降低备份频率,节省计算资源);
如果第二时间大于第一时间,说明备份速度不能满足循环写入的需求,用户写到可写地址后,备份还没完成,很有可能需要等待备份完成才能返回从0000继续写数据,这种情况下,可以调小备份大小,例如为0900+890,在循环buf中新的备份地址即为792,从而减小备份量,减少循环写入的等待时间。
在将0000-0900的数据备份的过程中,还可以从0900继续写入数据,写到0998后,如果0000-0900的数据备份完成,则可以返回从0000继续写入数据,直至写到0802,可以将0900-0998、以及0000-0802的数据备份,然后将0802作为新的起始地址。
为了更清楚的表述本发明实施例,图2为本发明实施例一提供的数据备份方法中重新确定备份地址的示例图。如图2所示,以内存为开辟大小为1000、开辟起始地址(0000)、起始地址(0000)、备份地址(0900)、可写地址(0990)、边界地址(0998)、开辟结束地址(1000)、内存为循环buf的情况为例。其中,开辟起始地址与结束开辟地址之间的内存量表示开辟大小;起始地址与可写地址之间的内存量表示可写大小;起始地址与备份地址之间的内存量表示备份大小。
第一次写入数据,从起始地址(0000)写到备份地址(0900),然后将写入0000-0900的900个字节的数据备份。
第二次写入数据,开辟起始地址、边界地址、开辟结束地址不变,需要重新确定的是新的起始地址、备份地址及可写地址。可以将第一次写入数据的备份地址(0900)作为新的起始地址。新的起始地址(0900)加上备份大小,备份大小例如与第一次的备份大小相同为900,则新的备份地址为0900+900=1800,备份地址1800需要换算成循环buf中的位置,即,从0900写到0998,然后会返回从0000继续写入数据,直至写到0802(即1800-998),即,确定新的备份地址为(0802)。若预设内存量为8字节,则对于从0802开始的这次写数据来说,可写地址为上一次的起始地址0900-8=0882。可以理解的是备份地址的重新确定也可以考虑第一次写入的数据的备份速度及本次写到可写地址的速度。
图3为本发明实施例一提供的数据备份方法中数据备份过程的示例图。如图3所示,可以存在多个进程多共享内存块进行写入数据和数据备份,其中守护进程可以用来判断内存使用情况,当写入数据写到内存备份地址时,数据开始备份。在数据备份的同时,其他进程可以继续写入数据。当数据备份完成后可以重新确定备份地址、可写地址和起始地址。
本发明实施例的可选实施例,通过将可写地址与边界地址之间、边界地址与开辟结束地址之间预留内存量,可以防止出现用户写数据越界的情况。同时通过比较第一时间与备份数据所需的第二时间的大小,重新确定内存的备份地址,防止出现系统卡顿或备份频率过大的问题,实现数据备份与写入的平衡,提高备份和写入的效率。
实施例二
图3为本发明实施例二提供的一种数据备份装置的结构框图,该装置适用于进行数据备份的情况。该装置可以由硬件和/或软件实现,并一般集成在电子设备中。如图3所示,该装置包括:第一写入模块21、备份模块22、第二写入模块23。
第一写入模块21,用于从起始地址开始向内存中写入数据;
备份模块22,用于在写到内存的备份地址时,将起始地址到备份地址之间的数据备份;
第二写入模块23,用于将备份地址作为新的起始地址,并重新确定内存的备份地址,返回执行从起始地址开始向内存中写入数据的操作。
可选的,第一写入模块21可以具体用于:
在写到内存的边界地址时,若起始地址到备份地址之间的数据备份已完成,则从内存的开辟起始地址继续写入数据;
其中,边界地址小于内存的开辟结束地址,边界地址与开辟结束地址之间不支持写入数据。
可选的,第二写入模块23包括:
第一时间预测单元,用于预测从备份地址写到内存的可写地址的第一时间,其中,可写地址小于内存的开辟结束地址;
备份地址确定单元,用于根据第一时间以及备份数据所需的第二时间重新确定内存的备份地址。
可选的,第一时间预测单元可以具体用于:
根据备份地址对应的起始地址到备份地址之间的内存量,以及从备份地址对应的起始地址写到备份地址的时间,计算数据的写入速度;
根据备份地址到可写地址之间的内存量,以及写入速度,预测从备份地址写到内存的可写地址的第一时间。
可选的,备份地址确定单元具体可以用于:
若第一时间大于第二时间,且第一时间与第二时间的差值大于或等于设定阈值,则按照写入数据的方向调整内存的备份地址,以增大单次备份的数据量。
可选的,备份地址确定单元具体可以用于:
若第一时间小于或等于第二时间,或者,第一时间与第二时间的差值小于设定阈值,则按照写入数据的反方向调整内存的备份地址,以减小单次备份的数据量。
可选的,可写地址与边界地址之间相差预设内存量,或者,可写地址与备份地址对应的起始地址之间相差预设内存量。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
实施例三
图4为本发明实施例三提供的一种电子设备的结构示意图,如图4所示,该电子设备包括处理器31、存储器32、输入装置33和输出装置34;设备中处理器31的数量可以是一个或多个,图4中以一个处理器31为例;设备中的处理器31、存储器32、输入装置33和输出装置34可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的数据备份方法对应的模块(例如,第一写入模块21、备份模块22、第二写入模块23)。处理器31通过运行存储在存储器32中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的数据备份方法。
存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器32可进一步包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置33可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置34可包括显示屏等显示设备。
实施例四
本发明实施例四还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种数据备份方法,该方法包括:
从起始地址开始向内存中写入数据;
在写到内存的备份地址时,将起始地址到备份地址之间的数据备份;
将备份地址作为新的起始地址,并重新确定内存的备份地址,返回执行从起始地址开始向内存中写入数据的操作。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的数据备份方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述数据备份装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据备份方法,其特征在于,包括:
从起始地址开始向内存中写入数据;
在写到所述内存的备份地址时,将所述起始地址到所述备份地址之间的数据备份;
将所述备份地址作为新的起始地址,并重新确定所述内存的备份地址,返回执行所述从起始地址开始向内存中写入数据的操作。
2.根据权利要求1所述的方法,其特征在于,所述从起始地址开始向内存中写入数据,包括:
在写到所述内存的边界地址时,若所述起始地址到所述备份地址之间的数据备份已完成,则从所述内存的开辟起始地址继续写入数据;
其中,所述边界地址小于所述内存的开辟结束地址,所述边界地址与所述开辟结束地址之间不支持写入数据。
3.根据权利要求1所述的方法,其特征在于,所述重新确定所述内存的备份地址,包括:
预测从所述备份地址写到所述内存的可写地址的第一时间,其中,所述可写地址小于所述内存的开辟结束地址;
根据所述第一时间以及备份数据所需的第二时间重新确定所述内存的备份地址。
4.根据权利要求3所述的方法,其特征在于,所述预测从所述备份地址写到所述内存的可写地址的第一时间,包括:
根据所述备份地址对应的起始地址到所述备份地址之间的内存量,以及从所述备份地址对应的起始地址写到所述备份地址的时间,计算数据的写入速度;
根据所述备份地址到所述可写地址之间的内存量,以及所述写入速度,预测从所述备份地址写到所述内存的可写地址的第一时间。
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一时间以及备份数据所需的第二时间重新确定所述内存的备份地址,包括:
若所述第一时间大于所述第二时间,且所述第一时间与所述第二时间的差值大于或等于设定阈值,则按照写入数据的方向调整所述内存的备份地址,以增大单次备份的数据量。
6.根据权利要求3所述的方法,其特征在于,所述根据所述第一时间以及备份数据所需的第二时间重新确定所述内存的备份地址,包括:
若所述第一时间小于或等于所述第二时间,或者,所述第一时间与所述第二时间的差值小于设定阈值,则按照写入数据的反方向调整所述内存的备份地址,以减小单次备份的数据量。
7.根据权利要求3所述的方法,其特征在于,所述可写地址与所述边界地址之间相差预设内存量,或者,所述可写地址与所述备份地址对应的起始地址之间相差预设内存量。
8.一种数据备份装置,其特征在于,包括:
第一写入模块,用于从起始地址开始向内存中写入数据;
备份模块,用于在写到所述内存的备份地址时,将所述起始地址到所述备份地址之间的数据备份;
第二写入模块,用于将所述备份地址作为新的起始地址,并重新确定所述内存的备份地址,返回执行所述从起始地址开始向内存中写入数据的操作。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据备份方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据备份方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111339699.0A CN114064357A (zh) | 2021-11-12 | 2021-11-12 | 数据备份方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111339699.0A CN114064357A (zh) | 2021-11-12 | 2021-11-12 | 数据备份方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064357A true CN114064357A (zh) | 2022-02-18 |
Family
ID=80275328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111339699.0A Pending CN114064357A (zh) | 2021-11-12 | 2021-11-12 | 数据备份方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064357A (zh) |
-
2021
- 2021-11-12 CN CN202111339699.0A patent/CN114064357A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11531625B2 (en) | Memory management method and apparatus | |
US10114740B2 (en) | Memory management techniques | |
US10242022B1 (en) | Systems and methods for managing delayed allocation on clustered file systems | |
EP3796168A1 (en) | Information processing apparatus, information processing method, and virtual machine connection management program | |
US20220221998A1 (en) | Memory management method, electronic device and non-transitory computer-readable medium | |
US8516462B2 (en) | Method and apparatus for managing a stack | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
CN110865888A (zh) | 一种资源加载方法、装置、服务器及存储介质 | |
CN108228343B (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
EP4030289A1 (en) | Method and device for virtual machine memory management | |
US20190155641A1 (en) | Method and apparatus for collecting information, and method and apparatus for releasing memory | |
US20190227918A1 (en) | Method for allocating memory resources, chip and non-transitory readable medium | |
CN114168490A (zh) | 确定内存回收阈值的方法及相关设备 | |
US20220253252A1 (en) | Data processing method and apparatus | |
CN113031857A (zh) | 数据写入方法、装置、服务器及存储介质 | |
CN109740098B (zh) | 一种基于多页面窗口的应用处理方法及电子设备 | |
CN114064357A (zh) | 数据备份方法、装置、电子设备及存储介质 | |
CN115357552A (zh) | 消息队列报文存储方法、装置、设备、存储介质和程序产品 | |
CN115840635A (zh) | 计算资源管理方法、电子设备和程序产品 | |
CN112463374A (zh) | 一种内存管理方法、装置、设备及存储介质 | |
CN113032290A (zh) | 闪存配置方法、装置、电子设备和存储介质 | |
CN111090633A (zh) | 一种分布式文件系统的小文件聚合方法、装置及设备 | |
CN111177028A (zh) | 一种动态多级缓存的方法和设备 | |
CN112817769B (zh) | 游戏资源动态缓存方法、装置、存储介质与电子设备 | |
KR102334237B1 (ko) | 다중 포그라운드 어플리케이션을 위한 페이지 캐쉬 관리 방법 및 장치 |
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 |