CN107797885A - 电子设备及其控制方法 - Google Patents
电子设备及其控制方法 Download PDFInfo
- Publication number
- CN107797885A CN107797885A CN201710804322.5A CN201710804322A CN107797885A CN 107797885 A CN107797885 A CN 107797885A CN 201710804322 A CN201710804322 A CN 201710804322A CN 107797885 A CN107797885 A CN 107797885A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- area
- checkpointing
- primary memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 123
- 239000000872 buffer Substances 0.000 claims description 36
- 230000008859 change Effects 0.000 claims description 27
- 230000003139 buffering effect Effects 0.000 claims description 26
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000007689 inspection Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000009825 accumulation Methods 0.000 claims 1
- 238000013500 data storage Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003362 replicative effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/1458—Management of the backup or restore process
-
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种电子设备及其控制方法。电子设备包括:新存储器,被配置为包括主存储区域和文件系统区域;处理器,被配置为执行计算并根据预定条件在主存储区域和文件系统区域上执行检查点操作,其中,主存储器区域包括检查点表,检查点表中写入了关于数据发生改变的页面的信息,并且在主存储区域上执行检查点操作时,处理器初始化检查点表并且将主存储区域的页面的属性设置为只读。
Description
相关申请的交叉引用
本申请要求在2016年9月7日和2017年4月14日分别向韩国专利局递交的韩国专利申请No.10-2016-0114917和No.10-2017-0048313的优先权,其全部内容通过引用方式合并于此。
技术领域
根据本公开的装置和方法涉及电子设备及其控制方法,更具体地,涉及使用检查点管理数据的电子设备及其控制方法。
背景技术
检查点方法是一种通常用于在储存中存储一致状态的机制,在发生意外错误的情况下,系统返回到该一致状态。在检查点方法中,将系统的状态转换为文件,并将文件存储在储存中。
参考图1,示出了根据相关技术的使用检查点管理数据的方法。在检查点方法中,将系统的状态转换为文件,并将文件存储在储存中。在计算和检查点期间发生错误的情况下,电子设备应该将系统恢复到最近的检查点处并重新启动系统,由此丢失了时间w。此外,将系统恢复到检查点处所需的时间r。因此,在根据相关技术的电子设备中,从错误发生直到系统恢复所需的时间为w+r。通常,在高性能计算(HPC)系统中,连续计算时间(或检查点间隔)为大约3小时至4小时,检查点操作时间为大约30分钟至1小时。因此,在根据相关技术的电子设备中,在发生错误的情况下,需要很长时间。
另外,在根据相关技术的电子设备中,处理器和设备的所有段信息和易失性信息应该以同步方式存储在一起,因此需要复杂的软件管理结构来确保数据的一致性和持续性。
发明内容
本公开的示例实施例克服上述缺点或上文未描述的其它缺点。
本公开提供了一种电子设备及其控制方法,其能够提供数据的一致性和持续性以确保系统运行时的可靠性。
根据本公开的方面,电子设备包括:非易失性新存储器,被配置为包括主存储区域和文件系统区域;以及处理器,被配置为执行计算并根据预定条件在主存储区域和文件系统区域上执行检查点操作,其中,所述主存储区域包括检查点表,所述检查点表中写入了关于主存储区域的数据发生改变的页面的信息,所述处理器初始化所述检查点表,并将所述主存储区域的页面的属性设置为只读,在请求所述第一页面上的数据更新的情况下,将关于将所述主存储区域的第一页面上的信息写入到所述检查点表,创建从所述第一页面复制的第二页面以用于回滚目的,并且将关于所述第二页面的信息写入到所述检查点表,并且将所述第一页面的属性改变为允许写入,并且将改变后的属性保持到下一个检查点部分,以及在执行所述检查点操作时移除所述第二页面,初始化所述检查点表,并且将改变为允许写入的所述第一页面的属性设置为写入只读,并且在发生错误时将所述第二页面的数据更新为所述主存储区域中的所述第一页面的数据,以及所述文件系统区域包括存储缓冲区和用于文件系统的文件的储存,包括关于在所述系统的操作期间更新的文件数据和元数据的新版本数据,在执行检查点操作时将存储缓冲区中的新版本数据块和元数据应用于文件,当发生错误时,删除并回滚所述存储缓存区的数据。
在执行计算时发生错误的情况下,处理器可以根据被写入到所述检查点表的信息将第二页面回滚到主存储区域中的第一页面,或者移除在存储缓冲区中的检查点操作之后的执行计算期间所累积的新数据,以将在文件系统区域中的存储缓冲区中累积的新数据回滚到时间上最近的检查点处的数据。
在所述主存储区域上执行所述检查点操作时发生错误的情况下,所述处理器可以根据被写入到所述检查点表的信息,将所述第二页面回滚到所述第一页面。
所述处理器可以根据所述预定条件在所述主存储区域上执行所述检查点操作,初始化所述检查点表,并且将所述主存储区域的页面的属性设置为只读。
储存可以包括预存储数据块,并且在数据块被更新的情况下,所述处理器将更新的数据块存储在所述存储缓冲区中,并且防止存储在所述存储缓冲区中的数据块在执行所述检查点操作之前被冲刷,使得所述存储缓冲区包括新数据,所述储存包括先前的数据,因此所述文件系统区域包括多版本数据。
当在文件系统区域上执行检查点操作时,处理器可以将存储缓冲区中包括更新的元数据和数据块的所有页面冲刷到储存。
在所述文件系统区域上执行检查点操作时发生错误的情况下,所述处理器将包括更新的数据块的所有页面前滚到所述储存。
预定条件可以是如下中的至少一个:预定时间段,以及满足数据改变的预定次数的条件。
根据本公开的另一方面,一种控制电子设备的方法,所述电子设备包括非易失性新存储器,所述非易失性新存储器包括主存储区域和文件系统区域,所述方法包括主存储区域检查点操作步骤:初始化检查点表,所述检查点表中写入了关于主存储区域的数据发生改变的页面的信息,并且将所述主存储区域的页面的属性设置为只读;文件系统区域检查点操作步骤:在所述文件系统区域上执行检查点操作;以及执行计算的步骤,其中,在执行计算的步骤中,在请求所述主存储区域的第一页上的数据更新的情况下,将关于所述第一页面的信息写入到所述检查点表,创建从所述第一页面复制的第二页面以用于回滚目的,并且将关于所述第二页面的信息写入到所述检查点表,并且将所述第一页面的属性改变为写入,并且将改变后的属性保持到下一个检查点部分,以及当发生错误时,将所述第二页面的数据更新为所述主存储区域中的第一页面的数据,所述文件系统区域包括存储缓冲区和用于文件系统的文件的储存,并且包括关于在所述系统的操作期间更新的文件数据和元数据的新版本数据,在所述主存储区域检查点操作步骤中,移除删除第二页面,初始化所述检查点表,将被改变为写入的第一页面的属性设置为只读,并且在文件系统区域检查点操作处理步骤中,将所述存储缓冲区中的新版本数据块和元数据应用于所述文件,并且当发生错误时删除和回滚存储缓冲区中的数据。
在执行计算的步骤中,在执行计算时发生错误的情况下,可以根据被写入到所述检查点表的信息将所述第二页面回滚到所述主存储区域中的所述第一页面,或者可以在文件系统区域中移除在存储缓冲区中的检查点操作之后的执行计算期间所累积的新数据,以便回滚到时间上最近的检查点处的数据。
在主存储区域检查点操作步骤中,在主存储区域上执行检查点操作时发生错误的情况下,可以根据被写入到检查点表的信息,将第二页面回滚到第一页面。
在主存储区域检查点操作步骤中,可以根据预定条件在主存储区域上执行检查点操作,可以初始化检查点表,并且可以将所述主存储区域的页面的属性设置为只读。
在文件系统区域检查点操作步骤中,在预存储在储存中的数据块被更新的情况下,可以将更新的数据块存储在所述存储缓冲区中,并且可以防止所述更新后的数据块在执行所述检查点操作之前被冲刷,使得所述存储缓冲区包括新数据,所述储存包括先前的数据,因此所述文件系统区域包括多版本数据。
在文件系统检查点操作步骤中,当在文件系统区域上执行检查点操作时,可以将存储缓冲区中包括更新的元数据和数据块的所有页面冲刷到储存。
在文件系统区域检查点操作步骤中,在文件系统区域上执行检查点操作时发生错误的情况下,可以将包括更新的数据块的所有页面前滚到储存。
在文件系统区域检查点操作步骤中,可以在第一页面和第二页面上的检查点操作之后将存储缓冲区的数据块冲刷到储存。
控制电子设备的方法还可以包括:在所述主存储区域检查点操作步骤和所述文件系统区域检查点操作步骤之间,冲刷中央处理单元(CPU)高速缓存,以用于同步和保持所述主存储区域和所述文件系统区域之间的一致性。
根据本公开的另一方面,一种包括混合型主存储器的电子设备包括:非易失性新存储器,被配置为包括第一主存储区域和文件系统区域;动态随机存取存储器(DRAM),被配置为包括第二主存储区域;以及处理器,被配置为执行计算,并且根据预定条件在第一主存储区域、第二主存储区域和文件系统区域上执行检查点操作,所述DRAM包括检查点表,所述检查点表中写入了关于第二主存储区域的数据发生改变的页面的信息,所述处理器在所述第二存储器中创建第一页面,在新存储器中创建从第一页面复制的第二页面以用于回滚目的,初始化所述检查点表,将主存储区域的页面的属性设置为只读,在请求所述第一页面上的数据更新的情况下,将关于所述第二主存储区域的第一页面上的信息写入到所述检查点表,创建所述第二页面,并且将关于所述第二页面上的信息写入到所述检查点表,并且将所述第一页面的属性改变为写入,并且将改变后的属性保持到下一个检查点部分,移除所述第二页面,初始化所述检查点表,并且在执行所述检查点操作时将所述第一页面的属性设置为写入只读,并且在发生错误时将所述第一主存储区域的所述第二页面的数据更新为所述第二主存储区域中的所述第一页面的数据,所述文件系统区域包括缓冲区和用于文件系统的文件的储存,包括关于在所述系统的操作期间更新的文件数据和元数据的新版本数据,在执行检查点操作时将存储缓冲区中的新版本数据块和元数据应用于所述文件,当发生错误时,删除并回滚存储缓冲区中的数据。
如上所述,根据本公开的不同的示例性实施例,电子设备及其控制方法可以提高存储数据的效率并确保数据的连续性和持续性。
附图说明
通过参考附图描述本公开的一些实例实施例,本公开的以上和/或其他方面将更加清楚,其中:
图1是用于描述根据相关技术执行计算和检查点操作的处理的图;
图2是用于描述根据本公开示例性实施例执行计算和检查点操作的处理的图;
图3是示出了根据本公开示例性实施例的电子设备的框图;
图4是示出了根据本公开示例性实施例的处理器的详细框图;
图5是用于描述根据本公开示例性实施例的电子设备的架构的图;
图6是用于描述根据本公开示例性实施例的电子设备存储关于处理的信息的处理的图;
图7是用于描述根据本公开示例性实施例的电子设备管理关于处理的信息的结构的图;
图8是用于描述根据本公开另一示例性实施例的电子设备存储数据和元数据的处理的图;
图9是用于详细描述根据本公开示例性实施例执行计算和检查点操作的处理的图;
图10是示出根据本公开示例实施例的控制电子设备的方法的流程图。
图11是用于描述根据本公开示例性实施例的电子设备根据事件存储关于特定处理的信息的操作的流程图;以及
图12是用于描述根据本公开示例性实施例的电子设备根据事件存储数据和元数据的操作的流程图。
具体实施方式
在下文中,将参照附图更详细地描述各种示例实施例。可以对本说明书中提到的示例性实施例进行各种修改。特定示例性实施例可以在附图中示出并且在具体描述中被详细描述。然而,提供附图所示的特定示例性实施例仅为了能够容易理解各种示例性实施例。因此,应当理解,本公开的精神不受附图所示的特定示例性实施例的限制,而是包括本公开的精神和范围中所包括的所有修改、等同物和替换物。
包括诸如“第一”、“第二”等的序数的术语可以用于描述各种组件。然而,这些组件不受这些术语限制。这种术语仅用于将一个组件与另一组件区分开来。
还将理解的是,本说明书中使用的术语“包括”或“具有”指定了本说明书中提到的所陈述的特征、数字、步骤、操作、组件、部分或者其组合的出现,但并不排除一个或多个其它特征、数字、步骤、操作、组件、部分或者其组合的出现或增加。应当理解的是,当将一个组件称为“连接到”或“耦接到”另一个组件时,所述组件可以直接连接或直接耦接到所述另一个组件,或者在所述组件与所述另一组件间插入其它组件的情况下连接或耦接到所述另一组件。另一方面,应当理解,当将一个元件称为“直接连接到”或“直接耦接到”另一个元件时,所述元件可以连接或耦接到所述另一个元件,而不在所述元件和所述另一元件之间插入其它元件。
同时,本说明书中使用的组件的术语“模块”或“…器”执行至少一个功能或操作。此外,“模块”或“…器”可以通过硬件、软件或硬件和软件的组合来执行功能或操作。此外,除了由特定硬件执行或至少一个处理器执行的“模块”或“…器”之外,多个“模块”或多个“…器”可以集成在至少一个模块中。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。
此外,当判定与本公开相关的已知功能或配置的详细描述可能会模糊本公开的要点时,将简述或省略这样的详细描述。
图2是用于描述根据本公开示例性实施例执行计算和检查点操作的处理的图。
参考图2,公开了一种电子设备,当在执行计算时发生页面故障时,其在文件系统区域中执行更新。本公开使用非易失性存储器中的新存储器。新存储器意味着这样的存储器:具有非易失性特性、可以以字节单位来访问、并且具有不显著落后于动态随机存取存储器(DRAM)的速度。例如,新存储器可以包括磁随机存取存储器(MRAM)、铁电RAM(FeRAM)、电阻RAM(RRAM)、自旋转移转矩(SST)MRAM、相变RAM(PRAM)、3D-XPoint等。新存储器可以用作根据相关技术的主存储器和储存。因此,根据本公开的电子设备具有不分开使用主存储器和储存的优点。此外,由于将一个新存储器用作主存储器和储存,所以电子设备在电子设备的设计空间方面上具有优势。
新存储器可以包括主存储区域和文件系统区域。主存储区域可以用作在计算处理中所使用的根据相关技术的主存储器,并且文件系统区域可以用作存储最终数据的根据相关技术的储存。当执行计算时,电子设备可以仅更新主存储区域的数据。此外,电子设备可以在特定事件发生时将主存储区域的数据移动到文件系统区域,或者可以将主存储区域的数据周期性地移动到文件系统区域。例如,特定事件是页面故障。页面故障是指这样的情况:主存储区域的页面溢出或者页面内容需要根据预定条件被初始化。由于根据本公开的电子设备根据预定条件将主存储区域的数据移动到文件系统区域,所以可以减少检查点操作时间。此外,由于主存储区域和文件系统区域存在于一个新存储器中,因此,将数据从主存储区域移动到文件系统区域可能需要较短的时间。作为示例性实施例,根据本公开的电子设备的连续计算时间(或检查点间隔)为大约10秒,并且与电子设备的总处理时间相比,页面故障时移动数据所需的时间和检查点操作时间足以忽略。
此外,由于根据本公开的电子设备频繁地将主存储区域的数据移动到文件系统区域,因此,即使发生错误,将回滚的数据也相对较少。因此,与根据相关技术的电子设备相比,根据本公开的电子设备可以显著地减少回滚时间。此外,根据本公开的电子设备可以应用各种方式来减少数据移动时间并确保数据的持续性和一致性。下面将描述详细的示例性实施例。
图3是示出了根据本公开示例性实施例的电子设备的框图。
参考图3,电子设备100包括处理器110和存储器120。存储器120是包括主存储区域和文件系统区域的新存储器。如上所述,主存储区域可以用作根据相关技术的主存储器,并且文件系统区域可以用作根据相关技术的储存。
在存储器120的主存储区域中,在计算处理中改变的数据可以被更新。此外,主存储区域可以包括检查点表,检查点表中写入了关于数据发生改变的页面的信息。检查点表可以包括关于数据发生改变的页面的信息或关于数据被复制的页面的信息。尽管在本公开示例性实施例中描述了存储器130的存储单位是页面的情况,但是存储单位可以被不同地设置为字节、字、块等。
此外,存储器120包括文件系统区域。文件系统区域可以用于根据预定事件或预定时段来存储主存储区域的数据。文件系统区域包括缓冲区和文件储存,并且可以在电子设备100执行计算期间将数据存储在缓冲区中,并且当计算结束或接收到更新信号时可以将缓冲区的数据写入到储存。例如,计算结束或接收到更新信号的情况可以是在文件系统区域上执行检查点操作的情况。
处理器110根据预定条件执行计算并在存储器120的主存储区域和文件系统区域上执行检查点操作。当处理器110在主存储区域上执行检查点操作时,处理器110可以初始化检查点表并将主存储区域的页面的属性设置为只读。
此外,即使在根据预定条件执行计算期间,处理器110也可以布置存储器120的主存储区域的数据并且将主存储区域的数据移动到文件系统区域。在发生页面故障的情况下,例如,在电子设备内存不足等的情况下,处理器110可以将主存储区域的数据移动到文件系统区域。
以下将描述电子设备100的详细框图。
图4是示出了根据本公开示例性实施例的处理器的详细框图。
参考图4,处理器110包括管理器111、控制器112和恢复器113。在一些情况下,处理器110还可以仅包括管理器111、控制器112和恢复器113中的一些。
管理器111可以判定预定事件是否发生,从而执行检查点操作。作为示例性实施例,处理器111可以判定处理器110对第一处理执行上下文切换是事件。在下面的描述中,上下文切换可以指示这样的操作:电子设备存储先前执行的处理的状态以切换由处理器执行的处理,并且将其状态恢复到可以执行新处理的状态。第一处理可以是当前正在执行的计算处理。
作为另一示例性实施例,处理器111可以将处理器110对第一处理执行上下文切换执行了预定次数的情况判定为事件。
控制器112可以根据判定结果在新存储器中存储关于第一处理在发生事件的时间点处的信息。更详细地,控制器112可以将关于第一处理的地址存储为用于执行回滚的信息。此外,控制器112可以使用fork()函数或其类似的调用来将第一处理上的任务结构复制到新存储器。在第一处理上的第一数据发生改变的情况下,控制器112可以在任务结构中以写时复制(CoW)方式来更新包括第一数据的页面。
此外,控制器112可以将关于第一处理的最新地址存储为用于在新存储器中执行回滚的信息,并且删除先前存储的剩余地址。作为另一示例性实施例,控制器112可以对关于第一处理的最新地址执行版本控制。因此,控制器112可以存储多个版本的多个地址,每个版本与新存储器中的多个时间点相对应。
作为另一示例性实施例,控制器112可以在文件系统区域中存储发生事件的时间点处的第一数据和第一元数据。
在电子设备发生系统错误的情况下,恢复器113可以删除存在于主存储区域中的第二数据和第二元数据,并回滚第一数据和第一元数据。例如,主存储区域可以是处理区域。此外,恢复器113可以使用存储在新存储器中的关于第一处理的状态信息来恢复当前正在执行的第一处理。
同时,处理器可以包括用于管理存储器的管理器。此外,处理器可以包括管理主存储区域的任务管理器和管理文件系统区域的IO管理器。
图5是用于描述根据本公开示例性实施例的电子设备的架构的图。
参考图5,示出了管理器10、P-任务11、P-io 12、处理的存储器地址空间21以及处理的文件22。管理器10通常可以管理P-任务11和P-io 12。作为任务管理器的P-任务11可以管理主存储区域的诸如计算、检查点操作等的处理。此外,作为IO管理器的P-io 12可以管理文件系统区域的诸如计算、检查点操作等的处理。根据本公开的电子设备可以使用包括主存储区域和文件系统区域的新存储器来保持数据的持续性。因此,作为示例性实施例,任务管理器可以被称为P(持续)-任务11,并且IO管理器可以被称为P(持续)-io。
需要存储在存储器中用于检查点操作的系统状态可以包括与操作区域相关的信息,即处理的存储器地址空间21和处理的文件22。当存储了关于存储器地址空间的信息和关于的文件的信息时,这些信息可能不被存储在任意位置处,并且需要彼此同步以具有一致性。管理器10在每个检查点操作时段对P-任务11和P-io 12之间的数据进行同步,以允许所有数据彼此一致。例如,处理的存储器地址空间21可以是主存储区域,并且文件空间可以是文件系统区域。
详细来说,P-任务11(或任务管理器)可以保持和管理处理的存储器地址空间(或主存储区域)的一致性。仅当执行存储指令时,才产生存储器地址空间的更新。因此,存储器地址空间不同于其中写计算调用更新(在写计算时执行更新)的文件空间(或文件系统区域)。因此,在产生所有存储指令的更新之前,P-任务11创建原始数据的副本。例如,由于存储器可以以页为单位来管理,所以以页为单位创建副本。但是,并不在所有存储指令中都创建副本。未校正的原始数据是由于临时错误而待回滚的数据。
P-io 12(或IO管理器)可以保持和管理文件空间(或文件系统区域)的一致性。文件系统区域可以包括缓冲区和文件储存。也就是说,根据数据或元数据的写指令而产生文件的更新。P-io 12可以交替执行诸如P-任务11之类的计算处理和检查点操作处理。可以在针对计算处理的所有写入指令进行更新之前创建原始数据的副本。然而,P-io 12可以使用与管理传统文件系统中的缓冲区高速缓存的机制类似的机制。当发生写入时,更新的块被存储在缓冲区中,并且对该页面的所有后续读取和写入可以在缓冲区中被处理。但是,缓冲区的内容不会被移除,而是在执行检查点操作之前仍保留在缓冲区中。P-io 12可以在检查点操作处理中将缓冲区的所有页面一次性冲刷到储存。
作为独立组件的P-任务11和P-io 12可以分别检查处理的操作区域(或主存储区域)和处理的文件。管理器10将P-任务11和P-io 12彼此同步以保持数据的一致性。此外,管理器10在发生错误时进行恢复处理。
将描述通过管理器10将P-任务11和P-io 12彼此同步的方法。P-任务11和P-io 12可以交替地执行计算处理和检查点操作处理。主存储区域的计算处理和文件系统区域的计算处理可以同时执行。检查点在预定的时间点开始。检查点间隔可由用户来设置。管理器10停止与应用程序有关的处理。当与应用处理有关的处理停止时,可以将所有处理的所有状态彼此同步。然后,可以执行P-任务检查点操作处理,然后可以执行P-io检查点操作处理。预定的检查点序列可以允许应用程序的状态在发生错误时通过恢复处理返回到一致状态。
此外,管理器10可以执行恢复处理。当错误恢复时,电子设备需要将应用程序返回到一致状态。管理器10可以检查所存储的应用程序并执行恢复处理。在计算处理或P-任务检查点操作处理中发生错误的情况下,应用程序可以恢复到先前的一致状态。也就是说,可以回滚和恢复数据。备选地,在P-io检查点操作处理中发生错误的情况下,所执行的计算或更新后的数据已经通过了P-任务检查点操作处理,从而数据可以前滚。也就是说,在根据本公开的电子设备中,由于所有文件数据存在于缓冲区中,并且将存在于缓冲区中的数据写入到文件存储器是幂等的,因此只需将存在于缓冲区中的数据写入到储存就可以保持数据的一致性。
图6是用于描述根据本公开示例性实施例的电子设备存储关于处理的信息的处理的图。
图6是用于描述根据示例性实施例的电子设备存储关于处理的信息的示意图。参考图6,可以提供根据预定义的事件30、40和50来创建和存储关于处理的信息P1和P2的电子设备。
在该示例性实施例中,关于处理的信息可以指示关于执行回滚的时间点的信息,以便为故障(比如,整个系统的异常结束)做准备。根据示例性实施例,预定事件30、40和50可以通过上下文切换来实现。
如图6所示,根据第一上下文切换30,上下文可以从第一处理A1切换到第二处理A2。类似地,根据第二上下文切换30,上下文可以再次从第三处理A3切换到第一处理A1。然而,图6所示的事件30、40和50的示例性实施例仅是用于帮助理解本公开内容的精神的示例,并不约束或限制其它示例性实施例的范围。例如,可以将上下文切换被执行预定次数的时间点用作事件。详细地说,可以将用于执行上下文切换的命令被调用n次的时间点用作事件。
电子设备中的处理器可以根据第一上下文切换30来重新执行第二处理A2。然而,根据本示例性实施例的电子设备可以预存储关于第一处理A1的信息P1,所述信息P1被用作回滚时间点,以便为故障(例如系统错误)做准备。更详细地,电子设备可以使用fork()函数等来创建关于第一处理A1的信息P1。更详细地,信息P1可以指示发生第一上下文切换30的时间点处的关于第一处理A1的地址。
此外,电子设备可以以复制正在执行的第一处理A1的任务结构的方式来创建关于第一处理A1的信息P1。因此,可以创建第一处理A1和关于第一处理A1的信息P1以彼此共享相同的存储空间。
可能存在电子设备执行各种处理的情况,然后通过第二上下文切换40再次执行第一处理A1。电子设备可以根据关于第一处理A1的信息P1来独立地仅更新改变后的区域上的页面信息。
作为示例,在将执行第一上下文切换30的时间点处的第一文本61存储为2的情况下,可能存在根据第二上下文切换40而发生第一文本61的改变的情况。电子设备可以以相对于第一文本61以写时复制方式来将数据300更新为第二文本62。因此,在稍后发生第三上下文切换的情况下,电子设备可以创建关于第一处理A1的信息P2以包括作为第三文本63的300,其对应于与第二文本62的值相同的值。
根据本示例性实施例的电子设备可以使用fork()函数等和写时复制方式来对处理的最近状态执行检查点操作。因此,根据本示例性实施例的电子设备可以减少整个系统的负载,并且可以仅通过使用少量的资源来增加耐久性。
图7是用于描述根据本公开示例性实施例的电子设备管理关于处理的信息的结构的图。
参考图7,电子设备中所包括的新存储器120可以包括用于正在执行的处理的运行队列121和持续性队列122。作为示例性实施例,运行队列121和持续性队列122可以被包括在新存储器120的主存储区域中。
电子设备可以包括在其中存储有在新存储器120中执行的处理的连接列表上的运行队列121。在本示例性实施例中,电子设备可以使用运行队列121来管理第一处理A1、第二处理A2和第三处理A3。
此外,电子设备可以包括存储关于当前未执行的处理的信息的持续性队列122。作为示例,可以根据第一上下文切换30使用持续性队列122来管理关于第一处理器A1的信息P1。关于第一处理A1的信息P1可以指示发生第一上下文切换30时的关于第一处理A1的状态的信息。作为示例,在计算系统中发生诸如系统错误情况的情况下,可以将发生第一上下文切换30的时间点用作为用于回滚处理的参考时间点。
作为示例,可能存在在执行存在于运行队列121中的第一处理A1的时间期间发生系统故障的情况。在这种情况下,电子设备可能强制结束正在执行的处理A1。此外,电子设备可以将关于预存储在持续性队列122中的第一处理A1的信息P1复制到运行队列121,以再次恢复与回滚时间点相对应的第一处理A1。
根据本示例性实施例的电子设备可以使用如今作为新存储器广泛使用的非易失性随机存取存储器(NVRAM)的非易失性特性来减少系统的负载,并且可以通过存储处理的回滚信息来提高耐久性。
图8是用于描述根据本公开另一示例性实施例的电子设备存储数据和元数据的处理的图。
参考图8,示出了根据本示例性实施例的电子设备中所包括的新存储器120的结构图。新存储器120可以包括主存储区域121和文件系统区域122。
在根据正在执行的处理执行创建数据的操作或修改数据的操作71的情况下,根据本示例性实施例的电子设备可以更新存在于主存储区域121中的第一元数据M1中的相关数据。此外,在根据正在执行的处理执行写入数据的操作72的情况下,电子设备可更新存在于主存储区域121中的第一数据D1中的相关数据。
电子设备可以判定预定事件是否发生,从而执行检查点操作。作为示例性实施例,预定事件可以指示电子设备对处理执行的上下文切换。作为另一示例性实施例,预定事件可以指示电子设备对处理执行上下文切换执行了预定次数的情况。
当预定事件发生时,电子设备可以将存在于主存储区域121中的第一数据D1和第一元数据M1两者复制(73a和73b)到文件系统区域122。此外,电子设备可以将复制的数据和元数据存储为事件发生的时间点上的第二数据D2和第二元数据M2。根据本示例性实施例的电子设备可以根据预定事件将数据和元数据两者存储在新存储器120的文件系统区域122中。
然而,在即使在将第一数据D1和第一元数据M1复制(73a和73b)到文件系统之后也发生创建数据的操作或修改数据的操作71或写入数据的操作72的情况下,电子设备可以连续地将新的数据和元数据更新为主存储区域的第一数据D1和第一元数据M1。
假设电子设备执行处理时发生系统错误或故障。电子设备可以如图6所述强制结束正在执行的处理,并回滚和恢复关于处理的状态信息。根据本示例性实施例的电子设备可以删除(74)存储在主存储区域121中的第一数据D1和第一元数据M1。此外,电子设备可以再次将存储在文件系统区域122中的先前的第二数据D2和第二元数据M2回滚到主存储区域121。因此,还恢复了与先前处理时间点相对应的数据和元数据,从而可以提高整个系统的耐久性。
图9是用于详细描述根据本公开示例性实施例执行计算和检查点操作的处理的图。
参考图9,示出了根据本公开的电子设备执行计算和检查点操作的处理。电子设备在先前的计算处理结束时执行检查点操作,并执行下一个计算处理。
电子设备可以在主存储区域上执行检查点操作。当电子设备在主存储区域上执行检查点操作时,电子设备可以初始化检查点表并将存储器设置为只读。由于存储器被设置为只读,所以可以将数据写入主存储区域的页面。将关于数据发生了改变的页面的信息写入检查点表中,所述检查点表包括在主存储区域中。虽然在本示例性实施例中描述了数据单位是页面的情况,但是数据单位可以被不同地设置为字节、字、两个字节、两个字等。
电子设备可以执行与页面1080有关的计算。页面10的数据可能会在计算期间更新。然而,由于存储器的属性是只读,所以页面1080的数据不改变。电子设备将关于需要更新的页面的信息写入到检查点表,并创建从页面10复制的页面。在图9中,页面14 80是从先前的页面10复制的页面。此外,电子设备将关于改变的页面的信息写入到检查点表。如图9所示,检查点表86包括指示页面10改变为页面14的信息。
电子设备将存储器的属性改变为写。电子设备更新页面10。也就是说,电子设备包括更新后的页面10 80a和复制的页面14 81。电子设备可以通过上述处理来更新数据。此外,由于电子设备包括关于复制页面的信息和数据,因此,在发生错误的情况下,电子设备可以使用关于复制页面的信息容易地回滚数据。当主存储区域上的计算结束时,电子设备再次对主存储区域执行检查点操作处理。
同时,如上所述,电子设备需要允许主存储区域和文件系统区域的数据彼此一致。文件系统区域包括缓冲区和文件储存。在主存储区域的数据改变的情况下,电子设备将改变的块92写入到文件系统区域的缓冲区。当执行主存储区域上的计算和检查点操作处理时,电子设备可以仅在缓冲区中具有更新的数据块92,同时保持文件储存的数据块91。当在计算处理中且在主存储区域中执行处理的时间处发生错误时,电子设备必须仅丢弃存储在缓冲区中的更新的数据块92。
当主存储区域上的检查点操作处理结束时,电子设备在文件系统区域上执行检查点操作处理。当电子设备在文件系统区域上执行检查点操作处理时,电子设备将存储在缓冲区中的数据块92写入到储存的数据块91。即使在文件系统区域上的检查点操作处理被执行的期间发生了错误,主存储区域上的检查点操作处理也已经结束,并且电子设备因此可以将存储在缓冲区中的数据块92写入到文件储存。也就是说,电子设备可以执行前滚。
也就是说,对于在电子设备执行计算时请求原始页面的数据更新的情况,电子设备可以将关于页面的信息写入到检查点表。此外,电子设备可以创建从页面复制的复制页面,并将关于复制页面的信息写入到检查点表。此外,电子设备可以将存储器的属性改变为写,以更新原始页面的数据。此外,在电子设备在主存储区域上执行计算或执行检查点操作时发生错误的情况下,电子设备可以基于被写入到检查点表的信息来回滚原始页面。
同时,电子设备可以包括文件系统区域,并且文件系统区域可以包括缓冲区和文件储存。储存可以包括原始数据块。在数据块被更新的情况下,电子设备可以将更新的数据块存储在缓冲区中。此外,当电子设备在文件系统区域上执行检查点操作时,电子设备可以将更新的数据块写入到储存。如上所述,电子设备可以在主存储区域上执行检查点操作,然后在文件系统区域上执行检查点操作。
当电子设备在文件系统区域上执行检查点操作时,电子设备可以将缓冲区中包括更新的元数据和数据块的所有页面冲刷到储存。也就是说,当数据块被更新时,电子设备可以将更新的数据块存储在缓冲区中,并且防止更新的数据块在执行检查点操作之前被冲刷走。因此,电子设备可以具有新数据存在于缓冲区中并且先前的数据存在于文件储存中的多版本数据存储状态。
同时,电子设备可以包括处理器,并且处理器可以包括处理器高速缓存(例如,中央处理单元(CPU)高速缓存))。电子设备可以冲刷主存储区域的检查点操作处理和文件系统区域的检查点操作处理之间的CPU高速缓存,以便同步和保持主存储区域和文件系统区域之间的一致性。
至此,已经描述了用于保持数据的持续性和一致性的各种示例性实施例。以下将描述控制电子设备的方法的流程图。
图10是示出根据本公开示例实施例的控制电子设备的方法的流程图。
参考图10,电子设备执行检查点操作(S1010)。电子设备的新存储器包括主存储区域和文件系统区域。电子设备可以在主存储区域上执行检查点操作,然后在文件系统区域上执行检查点操作。主存储区域可以包括检查点表,所述检查点表中写入了关于数据发生改变的页面的信息。此外,当电子设备在主存储区域上执行检查点操作时,电子设备可以初始化检查点表并将存储器的页面的属性设置为只读。
电子设备执行计算(S1020)。当请求原始页面的数据更新时,电子设备将关于原始页面的信息写入到检查点表。此外,电子设备可以创建复制页面,并将关于复制页面的信息写入到检查点表。电子设备可以将存储器的属性改变为写,并更新原始页面的数据。
图11是用于描述根据本公开示例性实施例的电子设备根据事件存储关于特定处理的信息的操作的流程图。
参考图11,示出了执行被操作的电子设备的检查点操作以提高系统的耐久性的方法。电子设备可以判定预定事件是否发生,从而执行检查点操作(S1110)。检查点操作可以指示这样的操作:电子设备存储与正在执行的处理上的主存储区域中存储的改变的数据和元数据的特定时间点相对应的值。电子设备可以根据预定条件基于各种事件执行检查点操作。
电子设备可以根据判定结果在新存储器中存储关于第一处理在发生事件的时间点处的信息(S1120)。更详细地,电子设备可以在新存储器中存储第一处理在发生事件的时间点处的地址。此外,电子设备可以将第一处理上的任务结构复制到新存储器中。
图12是用于描述根据本公开示例性实施例的电子设备根据事件存储数据和元数据的操作的流程图。
参考图12,执行检查点操作的电子设备可以判定预定事件是否发生,从而执行检查点操作(S1210)。电子设备可以根据判定结果存储在文件系统中发生事件的时间点上的第一数据和第一元数据(S1220)。电子设备可以根据先前处理的判定结果存储在文件系统中发生事件的时间点上的第一数据和第一元数据。在本示例性实施例中,元数据指示用于管理结构化存在于盘中的数据的辅助数据。元数据可以指示根据文件的创建和删除、目录的创建和删除以及文件大小的增加或减少而创建或改变的数据。在本示例性实施例中,第一数据和第一元数据可以分别指示与在事件发生的时间点处执行的处理相关联的数据和元数据。
在电子设备上发生系统错误的情况下,电子设备可以删除存在于主存储区域中的第二数据和第二元数据,并且回滚第一数据和第一元数据。在发生系统错误或故障的情况下,电子设备可以使用存储在新存储器的文件系统中的第一数据和第一元数据来执行回滚。更详细地,在发生系统错误的情况下,电子设备可以删除存在于主存储区域中的第二数据和第二元数据。因此,电子设备可以回滚并使用存储在文件系统中的先前的第一数据和第一元数据。
同时,电子设备包括非易失性新存储器和易失性RAM,并且主存储区域可以被包括在非易失性新存储器和易失性RAM两者中。也就是说,电子设备可以包括混合型主存储器。作为示例性实施例,非易失性新存储器可以包括第一主存储区域和文件系统区域,并且DRAM可以包括第二主存储区域。此外,DRAM可以包括检查点表,所述检查点表中写入了关于第二主存储区域的数据发生改变的页面的信息。同时,电子设备可以包括非易失性新存储器,而不是易失性RAM。
处理器可以执行计算,并且根据预定条件在第一主存储区域、第二主存储区域和文件系统区域上执行检查点操作。处理器可以在DREAM中创建第一页面,并在新存储器中创建从第一页面复制的第二页面,以用于回滚的目的。处理器可以初始化检查点表,并将第二主存储区域的页面的属性设置为只读。当请求第二主存储区域的第一页面上的数据更新时,处理器可以将关于第一页面的信息写入到检查点表,并创建第二页面,将关于第二页面的信息写入到检查点表。此外,处理器可以将第一页面的属性改变为允许写入,并将改变后的属性保持到下一个检查点部分。
当处理器执行检查点操作处理时,处理器可以移除第二页面,并初始化检查点表以将改变为允许写入的第一页面的属性设置为只读。此外,处理器可以在发生错误时将第一主存储区域的第二页面的数据更新为第二主存储区域的第一页面的数据。
同时,文件系统区域可以包括缓冲区和用于文件系统的文件的储存。文件系统区域可以包括关于在系统操作期间更新的文件数据和元数据的新版本数据。此外,文件系统区域可以在执行检查点操作时将缓冲区中的新版本数据块和元数据应用于文件,并且在发生错误时删除和回滚主存储缓冲区中的数据。
也就是说,电子设备可以使用现有DRAM比新存储器性能更好的优势来创建在DRAM中频繁更新的第一页面,并且创建存在于新存储器中的作为备份的第二页面,以改进计算性能。除了在DRAM和新存储器中都使用主存储区域之外,包括混合型主存储器的电子设备执行与上述操作处理类似的操作处理。
上述示例性实施例可以由硬件组件、软件组件、和/或硬件组件和软件组件的组合来实现。示例性实施例中描述的设备、方法和组件可以通过使用一个或多个通用计算机或专用计算机(例如,处理器、控制器、算术逻辑单元(AUL)、数字信号处理器、数字信号处理器微型计算机、现场可编程门阵列(FPGA)、可编程逻辑单元(PLU)、微处理器或可以执行指令并响应指令的任何其他设备)来实现。处理设备可以执行操作系统(OS)以及在操作系统上执行的一个或多个软件应用。此外,处理设备可以响应于软件的执行而访问、存储、操纵、处理和创建数据。虽然为了便于理解描述了使用一个处理设备的情况,但是本领域技术人员可以认识到,处理设备可以包括多个处理元件和/或多种类型的处理元件。例如,处理设备可以包括多个处理器或者一个处理器和一个控制器。此外,诸如并行处理器的其它处理配置也是可能的。
软件可以包括计算机程序、代码、指令或它们中的一个或多个的组合,并且可以将处理设备配置为按需要进行操作,或者独立或统一地命令处理设备按需要进行操作。软件和/或数据可以被永久地或临时地体现在任何类型的机器、组件、物理设备、虚拟设备、计算机存储介质或设备中,或者是由处理设备解释的发送的信号波,或者向处理设备提供指令或数据。软件可以分布在通过网络彼此连接的计算机系统上,以便以分布式方法存储或执行。软件和数据可以存储在一个或多个非暂时性计算机可读记录介质中。
非暂时性计算机可读介质不是短暂存储数据的介质,例如寄存器、高速缓存、存储器等,而是指在其中半永久地存储数据并且可被设备读取的介质。具体地,上述各种应用或程序可以在非暂时性计算机可读介质中存储并提供,例如高密度盘(CD)、数字多功能盘(DVD)、硬盘、蓝光光盘、通用串行总线(USB)存储设备、存储卡、只读存储器(ROM)等等。
尽管已经在上文中示出和描述了本公开的示例性实施例,但是本公开不限于上述具体示例性实施例,而是可以由本公开所属领域的技术人员在不脱离权利要求所述的披露的范围和精神的情况下进行各种修改。这些修改也应被理解为在本公开的技术精神和范围内。
Claims (18)
1.一种电子设备,包括:
非易失性新存储器,被配置为包括主存储区域和文件系统区域;以及
处理器,被配置为执行计算并根据预定条件在主存储区域和文件系统区域上执行检查点操作,
其中,所述主存储区域包括检查点表,所述检查点表中写入了关于主存储区域的数据发生改变的页面的信息,
其中,所述处理器初始化所述检查点表,并将所述主存储区域的页面的属性设置为只读,
其中,在请求第一页面上的数据更新的情况下,所述处理器将关于所述主存储区域的第一页面的信息写入到所述检查点表,创建从所述第一页面复制的第二页面以用于回滚目的,并且将关于所述第二页面的信息写入到所述检查点表,并且将所述第一页面的属性改变为写入,并且将改变后的属性保持到下一个检查点部分,
其中,所述处理器在执行检查点操作时移除所述第二页面,初始化所述检查点表,并且执行检查点操作将改变为写入的第一页面的属性设置为只读,并且在发生错误时将所述第二页面的数据更新为所述主存储区域中的所述第一页面的数据,以及
其中,所述文件系统区域包括存储缓冲区和用于文件系统的文件的储存,包括关于在所述系统的操作期间更新的文件数据和元数据的新版本数据,在执行检查点操作时将存储缓冲区中的新版本数据块和元数据应用于文件,以及
其中,当执行计算和在所述主存储区域上执行检查点操作时发生错误时,所述处理器中删除并回滚所述主存储区域中的数据。
2.根据权利要求1所述的电子设备,其中,在执行计算时发生错误的情况下,所述处理器根据被写入到所述检查点表的信息将所述第二页面回滚到所述主存储区域中的所述第一页面,或者在文件系统区域中移除在存储缓冲区中的检查点操作之后的执行计算期间所累积的新数据,以将存储缓冲区中累积的新数据回滚到时间上最近的检查点处的数据。
3.根据权利要求1所述的电子设备,其中,在所述主存储区域上执行所述检查点操作时发生错误的情况下,所述处理器根据被写入到所述检查点表的信息,将所述第二页面回滚到所述第一页面。
4.根据权利要求1所述的电子设备,其中,所述处理器根据所述预定条件在所述主存储区域上执行所述检查点操作,初始化所述检查点表,并且将所述主存储区域的页面的属性设置为只读。
5.根据权利要求1所述的电子设备,其中,所述储存包括预存储的数据块,并且
在数据块被更新的情况下,所述处理器将更新的数据块存储在所述存储缓冲区中,并且防止存储在所述存储缓冲区中的数据块在执行所述检查点操作之前被冲刷,使得所述存储缓冲区包括新数据,所述储存包括先前的数据,因此所述文件系统区域包括多版本数据。
6.根据权利要求5所述的电子设备,其中,当在所述文件系统区域上执行所述检查点操作时,所述处理器将所述存储缓冲区中包括更新的元数据和数据块在内的所有页面冲刷到所述储存。
7.根据权利要求5所述的电子设备,其中,在所述文件系统区域上执行检查点操作时发生错误的情况下,所述处理器将包括更新的数据块的所有页面前滚到所述储存。
8.根据权利要求1所述的电子设备,其中,所述预定条件是如下中的至少一个:预定时间段,以及满足数据改变的预定次数的条件。
9.一种控制电子设备的方法,所述电子设备包括非易失性新存储器,所述非易失性新存储器包括主存储区域和文件系统区域,所述方法包括:
主存储区域检查点操作步骤:初始化检查点表,所述检查点表中写入了关于所述主存储区域的数据发生改变的页面的信息,并且将所述主存储区域的页面的属性设置为只读;
文件系统区域检查点操作步骤:在所述文件系统区域上执行检查点操作;以及
执行计算的步骤,
其中,在执行计算的步骤中,在请求所述主存储区域的第一页面上的数据更新的情况下,将关于所述第一页面的信息写入到所述检查点表,创建从所述第一页面复制的第二页面以用于回滚目的,并且将关于所述第二页面的信息写入到所述检查点表,并且将所述第一页面的属性改变为写入,并且将改变后的属性保持到下一个检查点部分,以及
其中,在执行计算的步骤中,当发生错误时,将所述第二页面的数据更新为所述主存储区域中的第一页面的数据,
其中,所述文件系统区域包括存储缓冲区和用于文件系统的文件的储存,并且包括关于在所述系统的操作期间更新的文件数据和元数据的新版本数据,
其中,在所述主存储区域检查点操作步骤中,移除第二页面,初始化所述检查点表,将改变为写入的第一页面的属性设置为只读,并且当执行计算和在所述主存储区域上执行检查点操作时发生错误时,删除和回滚所述主存储区域中的数据,以及
其中,在文件系统区域检查点操作步骤中,将所述存储缓冲区中的新版本数据块和元数据应用于所述文件。
10.根据权利要求9所述的控制电子设备的方法,其中,在执行计算的步骤中,在执行计算时发生错误的情况下,根据被写入到所述检查点表的信息将所述第二页面回滚到所述主存储区域中的所述第一页面,或者在文件系统区域中移除在存储缓冲区中的检查点操作之后的执行计算期间所累积的新数据,以便回滚到时间上最近的检查点处的数据。
11.根据权利要求9所述的控制电子设备的方法,其中,在所述主存储区域检查点操作步骤中,在主存储区域上执行检查点操作时发生错误的情况下,根据被写入到所述检查点表的信息,将所述第二页面回滚到所述第一页面。
12.根据权利要求9所述的控制电子设备的方法,其中,在所述主存储区域检查点操作步骤中,根据所述预定条件在所述主存储区域上执行所述检查点操作,初始化所述检查点表,并且将所述主存储区域的页面的属性设置为只读。
13.根据权利要求9所述的控制电子设备的方法,其中,在所述文件系统区域检查点操作步骤中,在预存储在储存中的数据块被更新的情况下,将更新的数据块存储在所述存储缓冲区中,并且防止所述更新后的数据块在执行所述检查点操作之前被冲刷,使得所述存储缓冲区包括新数据,所述储存包括先前的数据,因此所述文件系统区域包括多版本数据。
14.根据权利要求13所述的控制电子设备的方法,其中,在所述文件系统区域检查点操作步骤中,在所述文件系统区域上执行检查点操作时,将所述存储缓冲区中包括更新的元数据和数据块的所有页面冲刷到所述储存。
15.根据权利要求13所述的控制电子设备的方法,其中,在所述文件系统区域检查点操作步骤中,在所述文件系统区域上执行检查点操作时发生错误的情况下,将包括更新的数据块的所有页面前滚到所述储存。
16.根据权利要求9所述的控制电子设备的方法,其中,在所述文件系统区域检查点操作步骤中,在所述主存储区域的第一页面和第二页面上的检查点操作完成之后,将所述存储缓冲区的数据块冲刷到所述储存。
17.根据权利要求9所述的控制电子设备的方法,还包括:在所述主存储区域检查点操作步骤和所述文件系统区域检查点操作步骤之间,冲刷中央处理单元(CPU)高速缓存,以用于同步和保持所述主存储区域和所述文件系统区域之间的一致性。
18.一种包括混合型主存储器的电子设备,包括:
第一存储器,被配置为包括第一主存储区域和文件系统区域;
第二存储器,被配置为包括第二主存储区域;以及
处理器,被配置为执行计算,并且根据预定条件在第一主存储区域、第二主存储区域和文件系统区域上执行检查点操作,
其中,所述第二存储器包括检查点表,所述检查点表中写入了关于第二主存储区域的数据发生改变的页面的信息,
其中,所述处理器在所述第二存储器中创建第一页面,在新存储器中创建从第一页面复制的第二页面以用于回滚目的,初始化所述检查点表,将主存储区域的页面的属性设置为只读,
其中,在所述第一页面上的数据更新的情况下,所述处理器将关于所述第二主存储区域的第一页面的信息写入到所述检查点表,创建所述第二页面,并且将关于所述第二页面的信息写入到所述检查点表,并且将所述第一页面的属性改变为写入,并且将改变后的属性保持到下一个检查点部分,
其中,所述处理器在执行检查点操作时移除所述第二页面,初始化所述检查点表,并且执行检查点操作将改变为写入的第一页面的属性设置为只读,并且在发生错误时将所述第一主存储区域的所述第二页面的数据更新为所述第二主存储区域的所述第一页面的数据,以及
其中,所述文件系统区域包括缓冲区和用于文件系统的文件的储存,包括关于在所述系统的操作期间更新的文件数据和元数据的新版本数据,在执行检查点操作时将所述存储缓冲区中的新版本数据块和元数据应用于文件,
其中,当执行所述计算和在所述第一主存储区域上执行所述检查点操作时发生错误时,所述处理器中删除并回滚所述第一页面中的数据,
其中,所述第一存储器是非易失性新存储器,并且
其中,所述第二存储器是动态随机存取存储器(DRAM)或非易失性新存储器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160114917 | 2016-09-07 | ||
KR10-2016-0114917 | 2016-09-07 | ||
KR1020170048313A KR101969799B1 (ko) | 2016-09-07 | 2017-04-14 | 전자 장치 및 제어 방법 |
KR10-2017-0048313 | 2017-04-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107797885A true CN107797885A (zh) | 2018-03-13 |
CN107797885B CN107797885B (zh) | 2021-08-24 |
Family
ID=59790976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710804322.5A Active CN107797885B (zh) | 2016-09-07 | 2017-09-07 | 电子设备及其控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180067817A1 (zh) |
EP (1) | EP3293635B1 (zh) |
CN (1) | CN107797885B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143142A (zh) * | 2019-12-26 | 2020-05-12 | 江南大学 | 一种普适检查点和回滚恢复方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192377B1 (en) * | 1998-05-13 | 2001-02-20 | Oracle Corporation | Method and apparatus for determing whether a transaction can use a version of a data item |
US6622263B1 (en) * | 1999-06-30 | 2003-09-16 | Jack Justin Stiffler | Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance |
US20040006723A1 (en) * | 2002-07-02 | 2004-01-08 | Erstad David Owen | Use of non-volatile memory to perform rollback function |
US20060069885A1 (en) * | 2004-09-30 | 2006-03-30 | Kabushiki Kaisha Toshiba | File system with file management function and file management method |
US20070220356A1 (en) * | 2006-02-23 | 2007-09-20 | Ruscio Joseph F | Method for checkpointing a system already engaged in a concurrent checkpoint |
US20100077164A1 (en) * | 2005-12-13 | 2010-03-25 | Jack Justin Stiffler | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
US20130332660A1 (en) * | 2012-06-12 | 2013-12-12 | Fusion-Io, Inc. | Hybrid Checkpointed Memory |
CN104461382A (zh) * | 2014-11-26 | 2015-03-25 | 华为技术有限公司 | 运行多个文件系统的文件服务器的内部写方法和服务器 |
US20160042046A1 (en) * | 2012-12-21 | 2016-02-11 | Zetta, Inc. | Distributed data store |
GB2533342A (en) * | 2014-12-17 | 2016-06-22 | Ibm | Checkpointing module and method for storing checkpoints |
CN105808383A (zh) * | 2016-03-11 | 2016-07-27 | 重庆大学 | 一种快速响应的虚拟机检查点保存方法 |
-
2017
- 2017-09-01 US US15/693,961 patent/US20180067817A1/en not_active Abandoned
- 2017-09-04 EP EP17189290.4A patent/EP3293635B1/en active Active
- 2017-09-07 CN CN201710804322.5A patent/CN107797885B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192377B1 (en) * | 1998-05-13 | 2001-02-20 | Oracle Corporation | Method and apparatus for determing whether a transaction can use a version of a data item |
US6622263B1 (en) * | 1999-06-30 | 2003-09-16 | Jack Justin Stiffler | Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance |
US20040006723A1 (en) * | 2002-07-02 | 2004-01-08 | Erstad David Owen | Use of non-volatile memory to perform rollback function |
US20060069885A1 (en) * | 2004-09-30 | 2006-03-30 | Kabushiki Kaisha Toshiba | File system with file management function and file management method |
US20100077164A1 (en) * | 2005-12-13 | 2010-03-25 | Jack Justin Stiffler | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
US20070220356A1 (en) * | 2006-02-23 | 2007-09-20 | Ruscio Joseph F | Method for checkpointing a system already engaged in a concurrent checkpoint |
US20130332660A1 (en) * | 2012-06-12 | 2013-12-12 | Fusion-Io, Inc. | Hybrid Checkpointed Memory |
US20160042046A1 (en) * | 2012-12-21 | 2016-02-11 | Zetta, Inc. | Distributed data store |
CN104461382A (zh) * | 2014-11-26 | 2015-03-25 | 华为技术有限公司 | 运行多个文件系统的文件服务器的内部写方法和服务器 |
GB2533342A (en) * | 2014-12-17 | 2016-06-22 | Ibm | Checkpointing module and method for storing checkpoints |
CN105808383A (zh) * | 2016-03-11 | 2016-07-27 | 重庆大学 | 一种快速响应的虚拟机检查点保存方法 |
Non-Patent Citations (2)
Title |
---|
卢鹏飞: "增量检查点设置与卷回恢复技术研究", 《万方平台》 * |
李凯原、杨孝宗: "提高用任务重复的检查点方案的性能", 《电子学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143142A (zh) * | 2019-12-26 | 2020-05-12 | 江南大学 | 一种普适检查点和回滚恢复方法 |
CN111143142B (zh) * | 2019-12-26 | 2021-05-04 | 江南大学 | 一种普适检查点和回滚恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107797885B (zh) | 2021-08-24 |
EP3293635A1 (en) | 2018-03-14 |
US20180067817A1 (en) | 2018-03-08 |
EP3293635B1 (en) | 2021-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9798792B2 (en) | Replication for on-line hot-standby database | |
US11768820B2 (en) | Elimination of log file synchronization delay at transaction commit time | |
JP5660693B2 (ja) | ハイブリッドoltp及びolap高性能データベースシステム | |
CN106716380B (zh) | 以近似同步的频率在多个主机上的多流应用的快照和复制的方法和系统 | |
US11086850B2 (en) | Persisting of a low latency in-memory database | |
EP2304569B1 (en) | Performing a data write on a storage device | |
CN101441582A (zh) | 计算机数据对象的备份和恢复方法及实现该方法的系统和程序产品 | |
CN103562878A (zh) | 在镜像虚拟机系统中的存储器检查点设置 | |
CN103198088A (zh) | 基于阴影分页的日志段目录 | |
KR101643729B1 (ko) | 시간 기반 데이터에 대한 백업, 리스토어, 및 마운트를 위한 데이터 관리 시스템 및 방법 | |
US8402008B2 (en) | Handling file operations with low persistent storage space | |
CN112119380A (zh) | 带有旁路的奇偶校验记录 | |
CN105938446A (zh) | 基于rdma和htm支持的数据复制容错方法 | |
CN107797885A (zh) | 电子设备及其控制方法 | |
US20170139980A1 (en) | Multi-version removal manager | |
CN105183738A (zh) | 一种基于血统和检测点技术的分布式内存文件系统 | |
KR101969799B1 (ko) | 전자 장치 및 제어 방법 | |
JP2004295272A (ja) | トランザクション制御方法 | |
US7890798B1 (en) | Computer cluster with second-node instance of application having access to state snapshot of first-node instance of application | |
LeLann | Chapter 15. Error recovery | |
JP2006012142A (ja) | 非ディスク永続メモリを利用したチェックポイント方法およびシステム |
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 |