CN111736778B - 数据更新方法、装置、系统和电子设备 - Google Patents

数据更新方法、装置、系统和电子设备 Download PDF

Info

Publication number
CN111736778B
CN111736778B CN202010702265.1A CN202010702265A CN111736778B CN 111736778 B CN111736778 B CN 111736778B CN 202010702265 A CN202010702265 A CN 202010702265A CN 111736778 B CN111736778 B CN 111736778B
Authority
CN
China
Prior art keywords
storage medium
file
data
internal memory
updating
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
CN202010702265.1A
Other languages
English (en)
Other versions
CN111736778A (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 Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network 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 Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010702265.1A priority Critical patent/CN111736778B/zh
Publication of CN111736778A publication Critical patent/CN111736778A/zh
Application granted granted Critical
Publication of CN111736778B publication Critical patent/CN111736778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据更新方法、装置、系统和电子设备,当需要将内存储器中的数据更新至存储介质时,首先获取更新记录,该更新记录中保存有最近指定更新次数内更新过数据的存储介质文件的文件标识,然后根据获取到的更新记录,从多个存储介质文件中确定目标存储介质文件,最后将内存储器中的数据更新至该目标存储介质文件中。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。

Description

数据更新方法、装置、系统和电子设备
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种数据更新方法、装置、系统和电子设备。
背景技术
当内存储器数据页与存储介质数据页上的内容不一致时,则称该内存储器数据页为脏页;当内存储器数据页中的数据更新至存储介质数据页后,内存储器数据页与存储介质数据页上的内容就一致了,这个数据更新的过程,即刷脏页的过程。在刷脏页的过程中,为了避免数据库异常断电导致的数据库宕机,通常采用双写(double write)的模式更新数据。也就是说,在刷脏页的过程中,需要向存储介质更新两份数据,导致存储介质IO(Input/Output,输入/输出)的数据量较大,较为浪费存储介质IO的资源。
发明内容
有鉴于此,本发明的目的在于提供一种数据更新方法、装置、系统和电子设备,以节约存储介质IO的资源。
第一方面,本发明实施例提供了一种数据更新方法,所述方法应用于运行有内存储器的第一装备;预设第二装备中运行有存储介质,所述存储介质中存储有多个存储介质文件;所述方法包括:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;将所述内存储器中的数据更新至所述目标存储介质文件中。
进一步的,根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件的步骤,包括:根据所述更新记录,确定在所述最近指定更新次数内没有更新过数据的存储介质文件;将在所述最近指定更新次数内没有更新过数据的存储介质文件,确定为目标存储介质文件。
进一步的,所述存储介质中存储有两个存储介质文件;所述更新记录中保存有最近一次更新过数据的存储介质文件的文件标识;所述将在所述最近指定更新次数内没有更新过数据的存储介质文件,确定为目标存储介质文件的步骤,包括:将在所述两个存储介质文件中,最近一次没有更新过数据的存储介质文件,确定为目标存储介质文件。
进一步的,所述存储介质文件设置有标记文件;所述标记文件中记录有所述存储介质文件最近一次更新数据时,redo日志的逻辑序列号;所述将所述内存储器中的数据更新至所述目标存储介质文件的步骤之前,所述方法还包括:将所述存储介质的redo日志的当前的逻辑序列号,更新至所述目标存储介质文件的标记文件中;所述方法还包括:如果在所述内存储器中的数据更新至所述目标存储介质文件的过程中,所述第二装备发生宕机,根据所述多个存储介质文件中除所述目标存储介质文件以外的指定存储介质文件,以及所述指定存储介质文件的标记文件,恢复所述目标存储介质文件中的数据。
进一步的,所述内存储器划分有多个数据块;所述存储介质中存储有多组存储介质文件组;每组所述存储介质文件组用于存储所述多个数据块中的至少一部分数据块的更新数据;每组所述存储介质文件组均包含有所述多个存储介质文件;每组所述存储介质文件组设置有一个更新记录;所述当需要将内存储器中的数据更新至存储介质时,获取更新记录的步骤,包括:当需要将内存储器中的数据更新至存储介质时,针对所述内存储器中的每个数据块,获取该数据块对应的存储介质文件组的更新记录;所述根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件的步骤,包括:根据该数据块对应的存储介质文件组的更新记录,从该数据块对应的存储介质文件组中的多个存储介质文件中确定目标存储介质文件。
进一步的,所述多个数据块中的数据块与所述多组存储介质文件组中的存储介质文件组一一对应。
第二方面,本发明实施例提供了一种数据更新方法,所述方法应用于运行有存储介质的第二装备;所述存储介质中存储有多个存储介质文件;预设第一装备中运行有内存储器,所述方法包括:接收来自所述第一装备的所述内存储器的数据,以及所述第二装备中的目标存储介质文件的文件标识;其中,所述目标存储介质文件由所述第一装备通过下述方式确定:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;将所述内存储器的数据更新至所述目标存储介质文件中。
进一步的,所述存储介质文件设置有标记文件;所述标记文件中记录有所述存储介质文件最近一次更新数据时,redo日志的逻辑序列号;所述接收来自所述第一装备的所述内存储器的数据的步骤之前,所述方法还包括:如果接收到来自所述第一装备的第一指令,将所述存储介质的redo日志的当前的逻辑序列号,更新至所述目标存储介质文件的标记文件中;所述方法还包括:如果在所述内存储器中的数据更新至所述目标存储介质文件的过程中,所述第二装备发生宕机,且接收到来自所述第一装备的第二指令,根据所述多个存储介质文件中除所述目标存储介质文件以外的指定存储介质文件,以及所述指定存储介质文件的标记文件,恢复所述目标存储介质文件中的数据。
进一步的,所述内存储器划分有多个数据块;所述存储介质中存储有多组存储介质文件组;每组所述存储介质文件组用于存储所述多个数据块中的至少一部分数据块的更新数据;每组所述存储介质文件组均包含有所述多个存储介质文件;所述将所述内存储器的数据更新至所述目标存储介质文件中的步骤,包括:针对所述内存储器数据中,每个数据块中的数据,将该数据块中的数据,更新至该数据块对应的目标存储介质文件中。
进一步的,所述多个数据块中的数据块与所述多组存储介质文件组中的存储介质文件组一一对应。
第三方面,本发明实施例提供了一种数据更新装置,所述装置设置于运行有内存储器的第一装备;预设第二装备中运行有存储介质,所述存储介质中存储有多个存储介质文件;所述装置包括:获取模块,用于当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;确定模块,用于根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;第一更新模块,用于将所述内存储器中的数据更新至所述目标存储介质文件中。
第四方面,本发明实施例提供了一种数据更新装置,所述装置设置于运行有存储介质的第二装备;所述存储介质中存储有多个存储介质文件;预设第一装备中运行有内存储器,所述装置包括:接收模块,用于接收来自所述第一装备的所述内存储器的数据,以及所述第二装备中的目标存储介质文件的文件标识;其中,所述目标存储介质文件由所述第一装备通过下述方式确定:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;第二更新模块,用于将所述内存储器的数据更新至所述目标存储介质文件中。
第五方面,本发明实施例提供了一种数据更新系统,所述系统包括运行有内存储器的第一装备和运行有存储介质的第二装备;所述存储介质中存储有多个存储介质文件;所述第一装备用于:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;所述第二装备用于:接收来自所述第一装备的所述内存储器的数据,以及所述第二装备中的目标存储介质文件的文件标识;将所述内存储器的数据更新至所述目标存储介质文件中。
第六方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现第一方面任一项所述的数据更新方法,或者第二方面任一项所述的数据更新方法。
第七方面,本发明实施例提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面任一项所述的数据更新方法,或者第二方面任一项所述的数据更新方法。
本发明提供的数据更新方法、装置、系统和电子设备,当需要将内存储器中的数据更新至存储介质时,首先获取更新记录,该更新记录中保存有最近指定更新次数内更新过数据的存储介质文件的文件标识,然后根据获取到的更新记录,从多个存储介质文件中确定目标存储介质文件,最后将内存储器中的数据更新至该目标存储介质文件中。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据更新方法的流程图;
图2为本发明实施例提供的另一种数据更新方法的流程图;
图3为本发明实施例提供的另一种数据更新方法的流程图;
图4为本发明实施例提供的另一种数据更新方法的流程图;
图5为本发明实施例提供的另一种数据更新方法的流程图;
图6为本发明实施例提供的另一种数据更新方法的流程图;
图7为本发明实施例提供的一种数据更新方法的示意图;
图8为本发明实施例提供的一种数据更新装置的结构示意图;
图9为本发明实施例提供的另一种数据更新装置的结构示意图;
图10为本发明实施例提供的一种数据更新系统的结构示意图;
图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于目前信息量较大,数据库中存储了海量数据,很多单表数据的行数达到了几千万甚至过亿的数据量。在数据库存储中,一张表的大数据量存储到一个存储介质文件中,使得单个存储介质文件过大,这样会导致刷脏页效率较低;并且,当需要查询数据时,由于遍历的步长较大,需要定位查找,这样会造成更多的随机查找,查询效率较低。在刷脏页的过程中,为了避免数据库异常断电导致的数据库宕机,通常采用双写(double write)的模式更新数据,在刷脏页的过程中,需要向存储介质更新两份数据,双写导致了存储介质IO资源的浪费,降低了存储介质性能。
基于此,本发明实施例提供的一种数据更新方法、装置、系统和电子设备,该技术可以应用于将内存储器中的数据更新到存储介质的应用中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据更新方法进行详细介绍,该方法应用于运行有内存储器的第一装备;预设第二装备中运行有存储介质,存储介质中存储有多个存储介质文件;在实际实现时,该第一装备和第二装备可以是同一台装备,也可以是不同的装备,比如,如果存储介质采用共享存储的方式,则内存储器和存储介质可能会运行在不同的装备上,也就是说,内存储器和存储介质可以运行在同一台装备上,也可以分别运行在不同的装备上;上述存储介质文件可以理解为存储在计算机中的文件,存储介质文件中的存储信息不受断电影响,存储介质中可以存储多个存储介质文件。
需要说明的是,本实施例中的存储介质具体可以为磁盘,存储介质文件具体可以为磁盘文件;内存储器具体可以为内存。
如图1所示,该方法包括如下步骤:
步骤S102,当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识。
上述当需要将内存储器中的数据更新至存储介质时,可以包括主动更新和被动更新两种更新方式,其中,被动更新可以理解为接收到用户或程序触发更新指令时的更新方式,将内存储器中的数据更新至存储介质的过程;主动更新可以理解为第一装备主动监控,并根据监控结果进行定期或者不定期更新;上述最近指定更新次数可以根据需求进行设定,以确定最近更新过数据的存储介质文件,比如,更新记录中可以保存有最近1次更新中,更新过数据的存储介质文件的文件标识,或者,保存有最近2次更新中,更新过数据的存储介质文件的文件标识;为便于区分上述多个存储介质文件,可以通过上述文件标识对存储介质文件进行标记或编号,比如,可以对多个存储介质文件进行编号,得到存储介质文件A、存储介质文件B或存储介质文件C等文件标识。当接收到用户或程序触发的将内存储器中的数据更新至存储介质的指令,或者,第一装备根据监控结果需要将内存储器中的数据更新至存储介质时,通常需要先获取到保存有存储介质文件的文件标识的更新记录,当存储介质文件中的数据有更新时,该存储介质文件对应的文件标识,例如存储介质文件A,通常会更新至更新记录中。
步骤S104,根据更新记录,从多个存储介质文件中确定目标存储介质文件。
上述目标存储介质文件可以理解为即将写入内存储器中数据的存储介质文件;在实际实现时,可以基于上述获取到的更新记录,从多个存储介质文件中选取目标存储介质文件,比如,可以继续将最近指定更新次数内更新过数据的存储介质文件作为目标存储介质文件,也可以从最近指定更新次数内没有更新过数据的存储介质文件中,选取一个作为目标存储介质文件,具体可以根据实际需求进行确定。
步骤S106,将内存储器中的数据更新至目标存储介质文件中。
当从多个存储介质文件中确定目标存储介质文件后,可以通过刷脏页,将内存储器中的数据更新至该目标存储介质文件中;在实际实现时,通常每次刷脏页时,都会把内存储器中的所有数据更新到该目标存储介质文件中,以保证目标存储介质文件中所保存的数据的完整性。
本发明实施例提供的数据更新方法,当需要将内存储器中的数据更新至存储介质时,首先获取更新记录,该更新记录中保存有最近指定更新次数内更新过数据的存储介质文件的文件标识,然后根据获取到的更新记录,从多个存储介质文件中确定目标存储介质文件,最后将内存储器中的数据更新至该目标存储介质文件中。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
本发明实施例还提供了另一种数据更新方法,该方法在上述实施例方法的基础上实现;该方法中,存储介质中存储有两个存储介质文件;更新记录中保存有最近一次更新过数据的存储介质文件的文件标识;在实际实现时,为了避免数据库异常断电导致的数据库宕机,可以在存储介质中存储两个存储介质文件,如存储介质文件A和存储介质文件B;每次刷脏页时,选择其中一个存储介质文件作为目标存储介质文件进行数据更新,另外,为了及时有效记录更新过数据的存储介质文件,可以在每次更新存储介质文件的数据后,将该存储介质文件的文件标识保存在更新记录中;该方法重点描述根据更新记录,从多个存储介质文件中确定目标存储介质文件的具体过程,具体对应下述步骤S204至步骤S206,如图2所示,该方法包括如下步骤:
步骤S202,当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识。
步骤S204,根据更新记录,确定在最近指定更新次数内没有更新过数据的存储介质文件。
在实际实现时,为了避免因数据库宕机等异常导致的存储介质文件中数据的不完整,通常不会将内存储器中的数据只更新保存在一个存储介质文件中,可以根据更新记录中所保存的最近指定更新次数内更新过数据的存储介质文件的文件标识,确定多个存储介质文件中,在最近指定更新次数内没有更新过数据的存储介质文件;比如,多个存储介质文件分别为存储介质文件A、存储介质文件B和存储介质文件C,最近指定更新次数为2次,如果更新记录中记录最近2次更新的存储介质文件为存储介质文件A和存储介质文件B,则根据该更新记录,可以确定最近2次内没有更新过数据的存储介质文件为存储介质文件C。
步骤S206,将在最近指定更新次数内没有更新过数据的存储介质文件,确定为目标存储介质文件。
为便于说明,仍以上述多个存储介质文件分别为存储介质文件A、存储介质文件B和存储介质文件C,最近指定更新次数为2次作为示例,如果根据更新记录,确定最近2次内没有更新过数据的存储介质文件为存储介质文件C,则可以将存储介质文件C确定为目标存储介质文件。
具体的,该步骤S206可以通过下述步骤一来实现:
步骤一,将在两个存储介质文件中,最近一次没有更新过数据的存储介质文件,确定为目标存储介质文件。
当存储介质中存储有两个存储介质文件,并且,更新记录中保存有最近一次更新过数据的存储介质文件的文件标识时,为了有效保证数据的完整性,在下一次刷脏页时,通常会选择这两个存储介质文件中,最近一次没有更新过数据的另一个存储介质文件作为目标存储介质文件,以进行数据更新,也可以理解为,将内存储器中的数据交替更新至这两个存储介质文件中,比如,如果两个存储介质文件的文件标识分别为存储介质文件A和存储介质文件B,最近一次更新过数据的存储介质文件为存储介质文件A,则下一次更新数据时,可以选择存储介质文件B作为目标存储介质文件。
步骤S208,将内存储器中的数据更新至目标存储介质文件中。
本发明实施例提供的另一种数据更新方法,当需要将内存储器中的数据更新至存储介质时,首先获取更新记录,该更新记录中保存有最近指定更新次数内更新过数据的存储介质文件的文件标识,然后根据该更新记录,确定在最近指定更新次数内没有更新过数据的存储介质文件,进而确定目标存储介质文件,最后将内存储器中的数据更新至该目标存储介质文件中。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
本发明实施例还提供了另一种数据更新方法,该方法在上述实施例方法的基础上实现;该方法中,存储介质文件设置有标记文件;标记文件中记录有存储介质文件最近一次更新数据时,redo日志的逻辑序列号;上述redo日志可以用于在将内存储器中的数据刷新到存储介质之前,记录数据刷新的地址等信息,使用redo日志的目的是将未刷新到存储介质的记录保存起来,防止丢失;随着数据逐渐增多,redo日志也逐渐增大,如redo日志可以从1M增大到10M,再增大到100M等;在实际实现时,上述逻辑序列号可以通过LSN(LogSequence Number,日志序号)表示,LSN用于标识特定日志文件记录在redo日志中的位置;redo日志中LSN的增长率与数据库活动直接相关联,也就是说,随着事务发生并且数据被写入redo日志,LSN 会不断增大,数据库中的活动越多,LSN 增长得越快;也可以理解为,LSN是一个一直递增的整型数字,表示数据写入到redo日志的字节总量,或者,redo日志的大小,比如,redo日志的字节总量为1k时,LSN为1024;redo日志的字节总量为2k时,LSN为2048。
如图3所示,该方法包括如下步骤:
步骤S302,当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识。
步骤S304,根据更新记录,从多个存储介质文件中确定目标存储介质文件。
步骤S306,将存储介质的redo日志的当前的逻辑序列号,更新至目标存储介质文件的标记文件中。
下面以存储介质中存储有存储介质文件A和存储介质文件B两个存储介质文件,且,逻辑序列号通过LSN表示为例进行说明,在实际实现时,每个存储介质文件通常都有其对应的标记文件,当确定目标存储介质文件后,通常需要将存储介质的redo日志的当前LSN记录到目标存储介质文件的标记文件中,比如,如果目标存储介质文件是存储介质文件A,则可以将存储介质的redo日志的当前LSN记录到存储介质文件A所对应的标记文件中。
步骤S308,将内存储器中的数据更新至目标存储介质文件中。
步骤S310,如果在内存储器中的数据更新至目标存储介质文件的过程中,第二装备发生宕机,根据多个存储介质文件中除目标存储介质文件以外的指定存储介质文件,以及指定存储介质文件的标记文件,恢复目标存储介质文件中的数据。
上述指定存储介质文件可以理解为,从多个存储介质文件中选取的除目标存储介质文件以外的任意一个存储介质文件,考虑到最近一次更新过数据的存储介质文件中的数据相对更完整,为了提升数据恢复的效率,可以将最近一次更新过数据的存储介质文件作为指定存储介质文件;在实际实现时,如果在内存储器中的数据更新至目标存储介质文件的过程中,运行有目标存储介质文件的第二装备发生宕机,则正在更新的目标存储介质文件中的数据可能会不完整,在对数据进行恢复时,需要从多个存储介质文件中选择指定存储介质文件,基于该指定存储介质文件对应的标记文件,恢复目标存储介质文件中的数据。
比如,仍以存储介质中存储有存储介质文件A和存储介质文件B两个存储介质文件为例进行说明,如果目标存储介质文件是存储介质文件A,在将内存储器中的数据更新至存储介质文件A时,假如运行有存储介质文件A的第二装备发生宕机,考虑到存储介质文件A中的数据可能不完整,在对数据进行恢复时,通常不会选择存储介质文件A来进行数据恢复,而是基于另一个存储介质文件B来对数据进行恢复,假设在宕机瞬间,存储介质文件A对应的标记文件中的逻辑序列号是400,存储介质文件B对应的标记文件中的逻辑序列号是200,在对数据进行恢复时,需要基于存储介质文件B,从200这个位置开始恢复数据,也可以理解为,从redo日志中200这个位置开始读取数据,并将数据恢复到宕机之前的数据,也就是说,一旦存储介质文件对应的标记文件中记录了逻辑序列号,如LSN,表示逻辑序列号之前的数据都已经更新并保存到该存储介质文件,逻辑序列号之后的数据不一定保存到存储介质文件,当需要恢复数据时,需要对逻辑序列号之后的数据进行恢复。
本发明实施例提供的另一种数据更新方法,当根据更新记录,从多个存储介质文件中确定目标存储介质文件后,将存储介质的redo日志的当前的逻辑序列号,更新至目标存储介质文件的标记文件中,再将内存储器中的数据更新至目标存储介质文件中,在更新过程中,如果第二装备发生宕机,根据多个存储介质文件中除目标存储介质文件以外的指定存储介质文件,以及指定存储介质文件的标记文件,恢复目标存储介质文件中的数据。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
本发明实施例还提供了另一种数据更新方法,该方法在上述实施例方法的基础上实现;该方法重点描述当需要将内存储器中的数据更新至存储介质时,获取更新记录的具体过程,以及,根据更新记录,从多个存储介质文件中确定目标存储介质文件的具体过程,具体对应下述步骤S402至步骤S404。
该方法中,内存储器划分有多个数据块;该数据块可以理解为对内存储器数据进行处理的一个数据单位,每个数据块相当于一个独立的存储单元;为便于区分,可以对多个数据块分别进行编号,如1号数据块、2号数据块等;存储介质中存储有多组存储介质文件组;每组存储介质文件组用于存储多个数据块中的至少一部分数据块的更新数据;每组存储介质文件组均包含有多个存储介质文件;每组存储介质文件组设置有一个更新记录;现有技术中,存储介质中通常只存储一个较大的存储介质文件,一张数据表的大数据量存储到这一个较大的存储介质文件中,即,一张数据表对应一个较大的存储介质文件,导致单表数据量过大,单个存储介质文件过大,比如,一个较大的存储介质文件的大小可能达到1G或更大,这样在对较大的存储介质文件中的数据进行读取、更新或随机查找时,效率比较低。而本实施例中,可以将与数据表的大数据量对应的一个较大的存储介质文件拆分为多组存储介质文件组,为便于区分,可以对多组存储介质文件组进行编号,如1号存储介质文件组、2号存储介质文件组等;每组存储介质文件组可以用于存储内存储器的一个或多个数据块的更新数据;每组存储介质文件组中均可以包含多个存储介质文件,即本实施例中,一个数据表对应多个小块的存储介质文件;其中,每个存储介质文件的大小可以根据实际需求进行配置,比如,可以配置每个存储介质文件的大小为1M或2M等,通常默认为1M;再比如,可以将原本较大的1G的存储介质文件拆分为10组存储介质文件组,这样每组存储介质文件组是100M,再将每个存储介质文件组分成2个或多个存储介质文件;每组存储介质文件组中的多个存储介质文件可以共用一个更新记录。
多个数据块中的数据库与多组存储介质文件组中的存储介质文件组一一对应;在实际实现时,通常会基于内存储器中的数据块对原本较大的存储介质文件进行拆分,内存储器中的一个数据块可以对应一个存储介质文件组,比如,如果将内存储器划分为10个数据块,则可以在存储介质中对应存储10个存储介质文件组,一个数据块对应一个存储介质文件组,如1号数据块对应1号存储介质文件组、2号数据块对应2号存储介质文件组等。
如图4所示,该方法包括如下步骤:
步骤S402,当需要将内存储器中的数据更新至存储介质时,针对内存储器中的每个数据块,获取该数据块对应的存储介质文件组的更新记录。
在实际实现时,考虑到内存储器中划分有多个数据块,每个数据块都有与其对应的存储介质文件组,如1号数据块对应1号存储介质文件组、2号数据块对应2号存储介质文件组等;每个存储介质文件组中都设置有一个更新记录,当需要将内存储器中的数据更新至存储介质时,需要针对内存储器中的每个数据块,获取其对应的存储介质文件组的更新记录,如,对于内存储器中的1号数据块,获取其对应的1号存储介质文件组的更新记录,该更新记录中保存有1号存储介质文件组中,最近指定更新次数内更新过数据的存储介质文件的文件标识;对于内存储器中的2号数据块,获取其对应的2号存储介质文件组的更新记录,该更新记录中保存有2号存储介质文件组中,最近指定更新次数内更新过数据的存储介质文件的文件标识。
步骤S404,根据该数据块对应的存储介质文件组的更新记录,从该数据块对应的存储介质文件组中的多个存储介质文件中确定目标存储介质文件。
考虑到每个存储介质文件组的更新记录中保存有最近指定更新次数内更新过数据的存储介质文件的文件标识,针对内存储器中的每个数据块,可以根据该数据块所对应的存储介质文件组的更新记录,从多个存储介质文件中选取目标存储介质文件,比如,对于1号数据块来说,假如其对应的1号存储介质文件组中包括两个存储介质文件,分别为存储介质文件A和存储介质文件B,最近一次更新过数据的存储介质文件为存储介质文件A,则下一次更新数据时,可以选择该1号存储介质文件组中的存储介质文件B作为目标存储介质文件。
步骤S406,将内存储器中的数据更新至目标存储介质文件中。
本发明实施例提供的另一种数据更新方法,当需要将内存储器中的数据更新至存储介质时,针对内存储器中的每个数据块,获取该数据块对应的存储介质文件组的更新记录;然后根据该数据块对应的存储介质文件组的更新记录,从该数据块对应的存储介质文件组中的多个存储介质文件中确定目标存储介质文件;最后将内存储器中的数据更新至目标存储介质文件中。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
本发明实施例还提供了另一种数据更新方法,该方法应用于运行有存储介质的第二装备;存储介质中存储有多个存储介质文件;预设第一装备中运行有内存储器,如图5所示,该方法包括如下步骤:
步骤S502,接收来自第一装备的内存储器的数据,以及第二装备中的目标存储介质文件的文件标识;其中,目标存储介质文件由第一装备通过下述方式确定:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据更新记录,从多个存储介质文件中确定目标存储介质文件。
在实际实现时,为便于区分上述多个存储介质文件,通常会为存储介质中存储的多个存储介质文件进行标识,得到每个存储介质文件对应的文件标识,如存储介质文件A、存储介质文件B等。通过第一装备确定目标存储介质文件,当需要将内存储器中的数据更新至存储介质时,运行有存储介质的第二装备接收来自运行有内存储器的第一装备的内存储器的数据,以及,通过第一装备所确定的目标存储介质文件的文件标识,如存储介质文件A或存储介质文件B等。
步骤S504,将内存储器的数据更新至目标存储介质文件中。
本发明实施例提供的另一种数据更新方法,接收来自第一装备的内存储器的数据,以及第二装备中的目标存储介质文件的文件标识;将内存储器的数据更新至目标存储介质文件中。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
本发明实施例还提供了另一种数据更新方法,该方法在上述实施例方法的基础上实现;该方法中,存储介质文件设置有标记文件;标记文件中记录有存储介质文件最近一次更新数据时,redo日志的逻辑序列号;内存储器划分有多个数据块;存储介质中存储有多组存储介质文件组;每组存储介质文件组用于存储多个数据块中的至少一部分数据块的更新数据;每组存储介质文件组均包含有多个存储介质文件;多个数据块中的数据块与多组存储介质文件组中的存储介质文件组一一对应;如图6所示,该方法包括:
步骤S602,如果接收到来自第一装备的第一指令,将存储介质的redo日志的当前的逻辑序列号,更新至目标存储介质文件的标记文件中。
上述第一指令可以理解为,运行有内存储器的第一装备所发出的,需要将内存储器中的数据更新至目标存储介质文件的指令;在实际实现时,如果第二装备接收到该第一指令,通常需要将存储介质的redo日志的当前的逻辑序列号,如LSN,记录到目标存储介质文件的标记文件中,比如,如果目标存储介质文件是存储介质文件A,则可以将存储介质的redo日志的当前LSN记录到存储介质文件A所对应的标记文件中。
步骤S604,接收来自第一装备的内存储器的数据,以及第二装备中的目标存储介质文件的文件标识;其中,目标存储介质文件由第一装备通过下述方式确定:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据更新记录,从多个存储介质文件中确定目标存储介质文件。
步骤S606,将内存储器的数据更新至目标存储介质文件中。
具体的,该步骤S606可以通过下述步骤二实现:
步骤二,针对内存储器数据中,每个数据块中的数据,将该数据块中的数据,更新至该数据块对应的目标存储介质文件中。
由于内存储器中的多个数据块中,每个数据块都有与其对应的存储介质文件组,每个存储介质文件组中又包含多个存储介质文件,如,1号数据块对应1号存储介质文件组,1号存储介质文件组中包含存储介质文件A和存储介质文件B;当需要将内存储器的数据更新至目标存储介质文件中时,需要将内存储器中的每个数据块中的数据,更新至该数据块对应的目标存储介质文件中,比如,对于1号存储介质文件组来说,如果目标存储介质文件是存储介质文件A,则将1号数据块中的数据更新至1号存储介质文件组中的存储介质文件A中。
步骤S608,如果在内存储器中的数据更新至目标存储介质文件的过程中,第二装备发生宕机,且接收到来自第一装备的第二指令,根据多个存储介质文件中除目标存储介质文件以外的指定存储介质文件,以及指定存储介质文件的标记文件,恢复目标存储介质文件中的数据。
上述第二指令可以理解为,运行有内存储器的第一装备所发出的,需要恢复目标存储介质文件中的数据的指令;在实际实现时,如果在内存储器中的数据更新至目标存储介质文件的过程中,运行有目标存储介质文件的第二装备发生宕机,并且,第二装备接收到了第一装备发出的要求恢复目标存储介质文件中的数据的第二指令,考虑到第二装备发生宕机可能导致正在更新的目标存储介质文件中的数据不完整,在对数据进行恢复时,需要从多个存储介质文件中选择指定存储介质文件,基于该指定存储介质文件对应的标记文件,恢复目标存储介质文件中的数据。
本发明实施例提供的另一种数据更新方法,如果接收到来自第一装备的第一指令,将存储介质的redo日志的当前的逻辑序列号,更新至目标存储介质文件的标记文件中,接收来自第一装备的内存储器的数据,以及第二装备中的目标存储介质文件的文件标识;将内存储器的数据更新至目标存储介质文件中,如果在内存储器中的数据更新至目标存储介质文件的过程中,第二装备发生宕机,且接收到来自第一装备的第二指令,根据多个存储介质文件中除目标存储介质文件以外的指定存储介质文件,以及指定存储介质文件的标记文件,恢复目标存储介质文件中的数据。该方法中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
为进一步理解上述实施例,下面提供如图7所示的一种数据更新方法的示意图,图7中包括内存缓存区和存储介质存储区,其中,在内存缓存区中,内存(对应于上述内存储器)划分为10个数据块,分别为1号数据块、2号数据块,直至10号数据块,即数据在内存中分块缓存;在存储介质缓存区中,存储有10组磁盘文件组(对应于上述存储介质文件组),如1号磁盘文件组、2号磁盘文件组,直至10号磁盘文件组,每个数据块对应一组磁盘文件组,每组磁盘文件组中均包括磁盘文件A(对应于上述存储介质文件A)和磁盘文件B(对应于上述存储介质文件B)两个磁盘文件(对应于上述存储介质文件),每组磁盘文件组设置有一个更新记录,该更新记录中保存有最近一次更新过数据的磁盘文件的文件标识,比如,对于与1号数据块对应的1号磁盘文件组,如果更新记录中保存的最近一次更新过数据的磁盘文件的是磁盘文件A,则根据该更新记录,确定最近一次没有更新过数据的磁盘文件B为目标磁盘文件(对应于上述目标存储介质文件),再将1号数据块中的数据更新至1号磁盘文件组中的磁盘文件B中。
在实际实现时,通常需要先根据用户指令建立数据表,可以根据需求指定数据表的单个表空间的大小,如2M,一般默认为1M,建立磁盘文件;当用户更新数据后,内存先接收到用户的更新数据,保存到内存,然后通过后台进程定时刷脏页的方式,把内存中的数据再更新到磁盘;下面对刷脏页的过程进行介绍:
如图7所示,以内存中的1号数据块,目标磁盘文件是1号磁盘文件组的磁盘文件A为例,当刷新缓存中的1号数据块后,第一步,记录redo日志的LSN到一个标记文件,通常一组磁盘文件可以对应一个标记文件,由于目标磁盘文件是1号磁盘文件组中的第一个磁盘文件,即磁盘文件A,因此,在标记文件中的记录位置为第一行;第二步,把内存中的数据更新到磁盘,具体的,将内存数据中每个数据块中的数据,更新至该数据块对应的目标磁盘文件中,对于1号数据块来说,则是将1号数据块中的数据更新到1号磁盘文件组中的磁盘文件A中;第三步,在内存中更新最后刷新数据的磁盘文件的文件标识,即磁盘文件A,以记录最后刷新数据的磁盘文件;第四步,由于一个数据块中通常包括多个数据页,当内存中的数据页再次更新后,记录redo日志的LSN到一个标记文件,对于1号数据块来说,根据更新记录确定的目标磁盘文件变更为1号磁盘文件组中的第二个磁盘文件,即磁盘文件B,因此,在标记文件中的记录位置为第二行;第五步,把内存中的数据更新到磁盘,对于1号数据块来说,则是将1号数据块中的数据更新到1号磁盘文件组中的磁盘文件B中;第六步,在内存中更新最后刷新数据的磁盘文件的文件标识,即磁盘文件B,以记录最后刷新数据的磁盘文件;重复上述过程,以实现将内存中的数据交替更新到磁盘文件A和磁盘文件B中。
再比如,仍以1号数据块为例,第一次刷盘时,是将内存中1号数据块中的数据更新到1号磁盘文件组中的磁盘文件A,第二次刷盘时,是将内存中1号数据块中的数据更新到1号磁盘文件组中的磁盘文件B,磁盘文件B中的数据内容可能比磁盘文件A的内容更新,主要是因为更新的时间差,会有数据新旧的问题,比如,1点开始将1号数据块中的数据更新到磁盘文件A,2点开始将1号数据块中的数据更新到磁盘文件B,则磁盘文件A比磁盘文件B少了1点-2点的数据;具体的,假如1点时更新到磁盘文件A中的数据是1、2、3和4,到2点时,更新到磁盘文件B中的数据是1、2、3、4、5和6,则磁盘文件B比磁盘文件A多了5和6这两个数据。当需要将内存中的数据更新至磁盘时,每次仅更新至目标磁盘文件即可,对于本示例而言,每次刷脏页时,将内存中1号数据块中的数据更新至磁盘文件A或者磁盘文件B,通过交替选择目标磁盘文件进行数据存储的方式,可以每次向磁盘仅更新一份数据,实现了在磁盘中保存两份数据,保证了数据安全。
如果内存中的数据更新至目标磁盘文件的过程中,运行有磁盘的第二装备发生宕机,可能会导致宕机瞬间正在更新的磁盘文件被损坏,使该磁盘文件中的数据不完整,这时可以使用前一个磁盘文件,根据LSN记录的位置恢复数据;比如,在磁盘文件A更新过程中发生了宕机,则磁盘文件A中的数据可能不完整,需要使用前一次更新的磁盘文件,即磁盘文件B,以及该磁盘文件B的LSN所记录的位置进行数据恢复,以将数据恢复至宕机前的数据。
上述通过交替刷脏页存储数据的更新方式,会占用两倍的存储介质空间,也同样会写两份数据,在现有技术中,在刷盘瞬间同时写两份数据,该方式较为浪费存储介质IO的资源;而本方案是在刷盘的瞬间只写了一份数据,通过空间换取时间,降低存储介质IO的瞬间的数据量,减少了刷盘时间,提升了速度。另外,通过在存储介质中存储多个存储介质文件组,解决了单表数据量过大的问题,提高了随机查找及更新的性能。通过试验验证,上述数据更新方式可以使数据的更新性能提升30%。
本发明实施例提供了一种数据更新装置的结构示意图,装置设置于运行有内存储器的第一装备;预设第二装备中运行有存储介质,存储介质中存储有多个存储介质文件;如图8所示,该装置包括:获取模块80,用于当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;确定模块81,用于根据更新记录,从多个存储介质文件中确定目标存储介质文件;第一更新模块82,用于将内存储器中的数据更新至目标存储介质文件中。
本发明实施例提供的一种数据更新装置,当需要将内存储器中的数据更新至存储介质时,首先获取更新记录,该更新记录中保存有最近指定更新次数内更新过数据的存储介质文件的文件标识,然后根据获取到的更新记录,从多个存储介质文件中确定目标存储介质文件,最后将内存储器中的数据更新至该目标存储介质文件中。该装置中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
进一步的,确定模块81还用于:根据更新记录,确定在最近指定更新次数内没有更新过数据的存储介质文件;将在最近指定更新次数内没有更新过数据的存储介质文件,确定为目标存储介质文件。
进一步的,存储介质中存储有两个存储介质文件;更新记录中保存有最近一次更新过数据的存储介质文件的文件标识;确定模块81还用于:将两个存储介质文件中,在最近一次没有更新过数据的存储介质文件,确定为目标存储介质文件。
进一步的,存储介质文件设置有标记文件;标记文件中记录有存储介质文件最近一次更新数据时,redo日志的逻辑序列号;该装置还用于:将存储介质的redo日志的当前的逻辑序列号,更新至目标存储介质文件的标记文件中;该装置还用于:如果在内存储器中的数据更新至目标存储介质文件的过程中,第二装备发生宕机,根据多个存储介质文件中除目标存储介质文件以外的指定存储介质文件,以及指定存储介质文件的标记文件,恢复目标存储介质文件中的数据。
进一步的,内存储器划分有多个数据块;存储介质中存储有多组存储介质文件组;每组存储介质文件组用于存储多个数据块中的至少一部分数据块的更新数据;每组存储介质文件组均包含有多个存储介质文件;每组存储介质文件组设置有一个更新记录;获取模块80还用于:当需要将内存储器中的数据更新至存储介质时,针对内存储器中的每个数据块,获取该数据块对应的存储介质文件组的更新记录;确定模块81还用于:根据该数据块对应的存储介质文件组的更新记录,从该数据块对应的存储介质文件组中的多个存储介质文件中确定目标存储介质文件。
进一步的,多个数据块中的数据块与多组存储介质文件组中的存储介质文件组一一对应。
本发明实施例所提供的数据更新装置,其实现原理及产生的技术效果和前述数据更新方法实施例相同,为简要描述,数据更新装置实施例部分未提及之处,可参考前述数据更新方法实施例中相应内容。
本发明实施例提供了另一种数据更新装置的结构示意图,装置设置于运行有存储介质的第二装备;存储介质中存储有多个存储介质文件;预设第一装备中运行有内存储器,如图9所示,该装置包括:接收模块90,用于接收来自第一装备的内存储器的数据,以及第二装备中的目标存储介质文件的文件标识;其中,目标存储介质文件由第一装备通过下述方式确定:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据更新记录,从多个存储介质文件中确定目标存储介质文件;第二更新模块91,用于将内存储器的数据更新至目标存储介质文件中。
本发明实施例提供的另一种数据更新装置,接收来自第一装备的内存储器的数据,以及第二装备中的目标存储介质文件的文件标识;将内存储器的数据更新至目标存储介质文件中。该装置中,当需要将内存储器中的数据更新至存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
进一步的,存储介质文件设置有标记文件;标记文件中记录有存储介质文件最近一次更新数据时,redo日志的逻辑序列号;该装置还用于:如果接收到来自第一装备的第一指令,将存储介质的redo日志的当前的逻辑序列号,更新至目标存储介质文件的标记文件中;该装置还用于:如果在内存储器中的数据更新至目标存储介质文件的过程中,第二装备发生宕机,且接收到来自第一装备的第二指令,根据多个存储介质文件中除目标存储介质文件以外的指定存储介质文件,以及指定存储介质文件的标记文件,恢复目标存储介质文件中的数据。
进一步的,内存储器划分有多个数据块;存储介质中存储有多组存储介质文件组;每组存储介质文件组用于存储多个数据块中的至少一部分数据块的更新数据;每组存储介质文件组均包含有多个存储介质文件;第二更新模块91还用于:针对内存储器数据中,每个数据块中的数据,将该数据块中的数据,更新至该数据块对应的目标存储介质文件中。
进一步的,多个数据块中的数据块与多组存储介质文件组中的存储介质文件组一一对应。
本发明实施例所提供的数据更新装置,其实现原理及产生的技术效果和前述数据更新方法实施例相同,为简要描述,数据更新装置实施例部分未提及之处,可参考前述数据更新方法实施例中相应内容。
本发明实施例还提供了一种数据更新系统的结构示意图,如图10所示,该系统包括运行有内存储器的第一装备100和运行有存储介质的第二装备101,其中,该存储介质中存储有多个存储介质文件;该第一装备100和第二装备101可以是同一台设备,也可以是不同的设备。
该第一装备100用于:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据更新记录,从多个存储介质文件中确定目标存储介质文件。
该第二装备101用于:接收来自第一装备的所述内存储器的数据,以及第二装备中的目标存储介质文件的文件标识;将内存储器的数据更新至目标存储介质文件中。
本发明实施例提供的一种数据更新系统,系统包括运行有内存储器的第一装备和运行有存储介质的第二装备,当需要将内存储器中的数据更新至存储介质时,第一装备根据获取到的更新记录,从多个存储介质文件中确定目标存储介质文件;然后将内存储器的数据和该目标存储介质文件的文件标识发送至第二装备,最后将内存储器的数据更新至目标存储介质文件中,该系统中,当需要将第一装备中内存储器的数据更新至第二装备中的存储介质时,根据更新记录从多个存储介质文件中选取目标存储介质文件,内存储器中的数据仅更新至目标存储介质文件,因而向存储介质更新一份数据即可,降低了存储介质IO的数据量,节约了存储介质IO的资源。
本发明实施例还提供了一种电子设备,参见图11所示,该电子设备包括处理器130和存储器131,该存储器131存储有能够被处理器130执行的机器可执行指令,该处理器130执行机器可执行指令以实现上述数据更新方法。
进一步地,图11所示的电子设备还包括总线132和通信接口133,处理器130、通信接口133和存储器131通过总线132连接。
其中,存储器131可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口133(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线132可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器131,处理器130读取存储器131中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述数据更新方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的数据更新方法、装置、系统和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (15)

1.一种数据更新方法,其特征在于,所述方法应用于运行有内存储器的第一装备;预设第二装备中运行有存储介质,所述存储介质中存储有多个存储介质文件;所述方法包括:
当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;
根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;
将所述内存储器中的数据更新至所述目标存储介质文件中。
2.根据权利要求1所述的方法,其特征在于,根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件的步骤,包括:
根据所述更新记录,确定在所述最近指定更新次数内没有更新过数据的存储介质文件;
将在所述最近指定更新次数内没有更新过数据的存储介质文件,确定为目标存储介质文件。
3.根据权利要求2所述的方法,其特征在于,所述存储介质中存储有两个存储介质文件;所述更新记录中保存有最近一次更新过数据的存储介质文件的文件标识;
所述将在所述最近指定更新次数内没有更新过数据的存储介质文件,确定为目标存储介质文件的步骤,包括:将在所述两个存储介质文件中,最近一次没有更新过数据的存储介质文件,确定为目标存储介质文件。
4.根据权利要求1所述的方法,其特征在于,所述存储介质文件设置有标记文件;所述标记文件中记录有所述存储介质文件最近一次更新数据时,redo日志的逻辑序列号;
所述将所述内存储器中的数据更新至所述目标存储介质文件的步骤之前,所述方法还包括:将所述存储介质的redo日志的当前的逻辑序列号,更新至所述目标存储介质文件的标记文件中;
所述方法还包括:如果在所述内存储器中的数据更新至所述目标存储介质文件的过程中,所述第二装备发生宕机,根据所述多个存储介质文件中除所述目标存储介质文件以外的指定存储介质文件,以及所述指定存储介质文件的标记文件,恢复所述目标存储介质文件中的数据。
5.根据权利要求1所述的方法,其特征在于,所述内存储器划分有多个数据块;所述存储介质中存储有多组存储介质文件组;每组所述存储介质文件组用于存储所述多个数据块中的至少一部分数据块的更新数据;每组所述存储介质文件组均包含有所述多个存储介质文件;每组所述存储介质文件组设置有一个更新记录;
所述当需要将内存储器中的数据更新至存储介质时,获取更新记录的步骤,包括:当需要将内存储器中的数据更新至存储介质时,针对所述内存储器中的每个数据块,获取该数据块对应的存储介质文件组的更新记录;
所述根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件的步骤,包括:根据该数据块对应的存储介质文件组的更新记录,从该数据块对应的存储介质文件组中的多个存储介质文件中确定目标存储介质文件。
6.根据权利要求5所述的方法,其特征在于,所述多个数据块中的数据块与所述多组存储介质文件组中的存储介质文件组一一对应。
7.一种数据更新方法,其特征在于,所述方法应用于运行有存储介质的第二装备;所述存储介质中存储有多个存储介质文件;预设第一装备中运行有内存储器,所述方法包括:
接收来自所述第一装备的所述内存储器的数据,以及所述第二装备中的目标存储介质文件的文件标识;其中,所述目标存储介质文件由所述第一装备通过下述方式确定:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;
将所述内存储器的数据更新至所述目标存储介质文件中。
8.根据权利要求7所述的方法,其特征在于,所述存储介质文件设置有标记文件;所述标记文件中记录有所述存储介质文件最近一次更新数据时,redo日志的逻辑序列号;
所述接收来自所述第一装备的所述内存储器的数据的步骤之前,所述方法还包括:如果接收到来自所述第一装备的第一指令,将所述存储介质的redo日志的当前的逻辑序列号,更新至所述目标存储介质文件的标记文件中;
所述方法还包括:如果在所述内存储器中的数据更新至所述目标存储介质文件的过程中,所述第二装备发生宕机,且接收到来自所述第一装备的第二指令,根据所述多个存储介质文件中除所述目标存储介质文件以外的指定存储介质文件,以及所述指定存储介质文件的标记文件,恢复所述目标存储介质文件中的数据。
9.根据权利要求7所述的方法,其特征在于,所述内存储器划分有多个数据块;所述存储介质中存储有多组存储介质文件组;每组所述存储介质文件组用于存储所述多个数据块中的至少一部分数据块的更新数据;每组所述存储介质文件组均包含有所述多个存储介质文件;
所述将所述内存储器的数据更新至所述目标存储介质文件中的步骤,包括:针对所述内存储器数据中,每个数据块中的数据,将该数据块中的数据,更新至该数据块对应的目标存储介质文件中。
10.根据权利要求9所述的方法,其特征在于,所述多个数据块中的数据块与所述多组存储介质文件组中的存储介质文件组一一对应。
11.一种数据更新装置,其特征在于,所述装置设置于运行有内存储器的第一装备;预设第二装备中运行有存储介质,所述存储介质中存储有多个存储介质文件;所述装置包括:
获取模块,用于当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;
确定模块,用于根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;
第一更新模块,用于将所述内存储器中的数据更新至所述目标存储介质文件中。
12.一种数据更新装置,其特征在于,所述装置设置于运行有存储介质的第二装备;所述存储介质中存储有多个存储介质文件;预设第一装备中运行有内存储器,所述装置包括:
接收模块,用于接收来自所述第一装备的所述内存储器的数据,以及所述第二装备中的目标存储介质文件的文件标识;其中,所述目标存储介质文件由所述第一装备通过下述方式确定:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;
第二更新模块,用于将所述内存储器的数据更新至所述目标存储介质文件中。
13.一种数据更新系统,其特征在于,所述系统包括运行有内存储器的第一装备和运行有存储介质的第二装备;所述存储介质中存储有多个存储介质文件;
所述第一装备用于:当需要将内存储器中的数据更新至存储介质时,获取更新记录;其中,所述更新记录中保存有:最近指定更新次数内更新过数据的存储介质文件的文件标识;根据所述更新记录,从所述多个存储介质文件中确定目标存储介质文件;
所述第二装备用于:接收来自所述第一装备的所述内存储器的数据,以及所述第二装备中的目标存储介质文件的文件标识;将所述内存储器的数据更新至所述目标存储介质文件中。
14.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-10任一项所述的数据更新方法。
15.一种机器可读存储介质,其特征在于,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现权利要求1-10任一项所述的数据更新方法。
CN202010702265.1A 2020-07-21 2020-07-21 数据更新方法、装置、系统和电子设备 Active CN111736778B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010702265.1A CN111736778B (zh) 2020-07-21 2020-07-21 数据更新方法、装置、系统和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010702265.1A CN111736778B (zh) 2020-07-21 2020-07-21 数据更新方法、装置、系统和电子设备

Publications (2)

Publication Number Publication Date
CN111736778A CN111736778A (zh) 2020-10-02
CN111736778B true CN111736778B (zh) 2020-11-17

Family

ID=72655300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010702265.1A Active CN111736778B (zh) 2020-07-21 2020-07-21 数据更新方法、装置、系统和电子设备

Country Status (1)

Country Link
CN (1) CN111736778B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631252B (zh) * 2020-12-18 2022-07-12 广东嘉腾机器人自动化有限公司 一种产线设备中控系统的更新方法、外接更新模块和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1849570A (zh) * 2003-09-11 2006-10-18 松下电器产业株式会社 数据更新系统、数据更新设备和外部存储介质
CN103559139A (zh) * 2013-10-23 2014-02-05 华为技术有限公司 一种数据存储方法及装置
CN110874181A (zh) * 2018-08-31 2020-03-10 杭州海康威视系统技术有限公司 一种数据更新方法及更新装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018005446A (ja) * 2016-06-30 2018-01-11 富士通株式会社 情報処理装置、ストレージ制御プログラム、及びストレージ制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1849570A (zh) * 2003-09-11 2006-10-18 松下电器产业株式会社 数据更新系统、数据更新设备和外部存储介质
CN103559139A (zh) * 2013-10-23 2014-02-05 华为技术有限公司 一种数据存储方法及装置
CN110874181A (zh) * 2018-08-31 2020-03-10 杭州海康威视系统技术有限公司 一种数据更新方法及更新装置

Also Published As

Publication number Publication date
CN111736778A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN109284073B (zh) 数据存储方法、装置、系统、服务器、控制节点及介质
CN109496292B (zh) 一种磁盘管理方法、磁盘管理装置及电子设备
CN111125033B (zh) 一种基于全闪存阵列的空间回收方法及系统
CN106788468B (zh) 一种纠删码更新方法及装置,电子设备
CN109614054B (zh) 数据的读取方法和系统
CN110647514A (zh) 一种元数据更新方法、装置及元数据服务器
CN105447168A (zh) Mp4格式的碎片文件恢复与重组的方法
CN105446664A (zh) 一种对存储器进行文件存储方法和存储装置
CN104965835A (zh) 一种分布式文件系统的文件读写方法及装置
CN114860745B (zh) 基于人工智能的数据库扩展方法及相关设备
CN111736778B (zh) 数据更新方法、装置、系统和电子设备
CN112380383A (zh) 一种实时视频流数据的高效容错索引方法
EP3522040A1 (en) Method and device for file storage
CN109614273B (zh) 增量数据的读取方法和系统
CN113419897A (zh) 一种文件处理方法、装置、电子设备及其存储介质
CN111857603A (zh) 数据处理方法及相关装置
CN108108467B (zh) 数据删除方法及装置
CN115878381A (zh) 基于srm盘的数据恢复方法及装置、存储介质、电子装置
CN111698330B (zh) 存储集群的数据恢复方法、装置及服务器
CN113961138A (zh) 数据处理方法、装置、系统和电子设备
CN114546886A (zh) 一种值日志系统的空间回收方法
CN110209530B (zh) 一种恢复cdp系统io数据的方法及系统
CN112069162A (zh) 流计算的数据处理方法、装置、计算机设备和存储介质
CN112463460B (zh) 一种基于纠删码的小块数据恢复方法及系统
CN107301183B (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