CN108958880A - 数据处理方法、数据处理系统与计算机程序产品 - Google Patents

数据处理方法、数据处理系统与计算机程序产品 Download PDF

Info

Publication number
CN108958880A
CN108958880A CN201710564886.6A CN201710564886A CN108958880A CN 108958880 A CN108958880 A CN 108958880A CN 201710564886 A CN201710564886 A CN 201710564886A CN 108958880 A CN108958880 A CN 108958880A
Authority
CN
China
Prior art keywords
time
snapshot
data
virtual machine
execute
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
Application number
CN201710564886.6A
Other languages
English (en)
Other versions
CN108958880B (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.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
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 Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Publication of CN108958880A publication Critical patent/CN108958880A/zh
Application granted granted Critical
Publication of CN108958880B publication Critical patent/CN108958880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种数据处理方法、数据处理系统与计算机程序产品。数据处理方法包括:执行运行操作。数据处理方法也包括:在所述运行操作的期间中的预定时间点暂停所述运行操作,且根据在所述运行操作的期间中的所述预定时间点之前所收集的多个更新分页的传输量计算剩余处理时间。数据处理方法还包括:根据所述剩余处理时间继续执行所述运行操作、暂停所述运行操作与执行快照操作以产生对应的数据快照,以及执行传输操作以传送所述数据快照。

Description

数据处理方法、数据处理系统与计算机程序产品
技术领域
本公开是有关于一种用于具有容错机制的虚拟机器架构的伺服器数据处理方法,以及使用此方法的数据处理系统。另外还有关于使用此方法的一种计算机程序产品。
背景技术
近年来,随着因特网的快速发展,以及云端运算的兴起,对于信息服务的需求也越来越高,因此,具有高运算能力的虚拟机器(Virtual Machine,VM)被广泛使用于各种解决方案。例如,通过因特网结合运行有虚拟机器的大量的伺服器以形成高速运算与具备大量储存能力的整合式计算机被广为使用。
为了避免因伺服器故障导致的停机或数据遗失所造成的重大损失,目前可通过虚拟机器容错(Fault Tolerance,FT)机制,在正在提供服务的伺服器发生故障时,即时且无中断地切换至另一台伺服器来提供服务。图1绘示为虚拟机器容错机制所造成的延迟时间的示意图。请参照图1,以伺服器的备份机制为例,具体而言,具有容错机制的虚拟机器的数据处理周期(例如,备份周期)可分为四个阶段:运行操作、快照操作、传输操作以及输出操作,当在前三个阶段的操作中接收到来自用户的工作负载请求时,若有产生用以回应使用者的输出时,则此些输出会先被暂存于缓冲存储器中,直到输出操作的阶段才会被一起输出。也就是说,在虚拟机器容错系统中,回应用户的请求的所有输出信息必须在运行操作、快照操作与传输操作完成后才会被释放且传送给使用者,如此一来,便会造成工作负载的需求所对应的回应信息在虚拟机器容错系统中会产生额外的延迟时间。据此,在面对延迟敏感的工作负载需求(例如,在线游戏、即时交易)时,便无法保证系统回应时间,甚至造成断线或交易失败。基此,需要发展一套可以在虚拟机器容错系统中控制延迟时间的方法,才能满足此类工作负载的需求。
发明内容
本公开实施例提供一种数据处理方法以及使用此方法的数据处理系统与计算机程序产品,其能够有效地在具有容错机制的虚拟机器架构中控制工作负载延迟时间。
本公开的一范例实施例提出一种数据处理方法,本数据处理方法包括:执行运行操作;在所述运行操作的期间中的预定时间点暂停所述运行操作,且根据在所述运行操作的期间中的所述预定时间点之前所收集的多个更新分页的传输量计算剩余处理时间;根据所述剩余处理时间继续执行所述运行操作、暂停所述运行操作与执行快照操作以产生对应的数据快照;以及执行传输操作以传送所述数据快照。
本公开的一范例实施例提出一种数据处理系统,本数据处理系统包括:第一伺服器与第二伺服器。所述第一伺服器用以运行第一虚拟机器。所述第二伺服器,用以运行第二虚拟机器,所述第二伺服器通过总线耦接至所述第一伺服器。所述第一虚拟机器用以在所述运行操作的期间中的预定时间点暂停所述运行操作,且根据在所述运行操作的期间中的所述预定时间点之间所收集的多个更新分页的传输量计算剩余处理时间。再者,所述第一虚拟机器更用以根据所述剩余处理时间继续执行所述运行操作、暂停所述运行操作与执行快照操作以产生对应的数据快照。此外,所述第一虚拟机器更用以执行传输操作以传送所述数据快照。
本公开的一范例实施例提出一种具有至少一程序代码的计算机程序产品,当电子装置载入所述至少一程序代码并执行后,可完成上述的数据处理方法。
基于上述,本公开的范例实施例所提出的数据处理方法及使用此方法的数据处理系统与计算机程序产品能够根据所收集的更新分页的传输量来预估可继续执行运行操作的剩余处理时间,藉此动态地调整数据处理周期中运行操作的运行时间与决定运行操作之后的操作的启动时间点,据此,可有效地控制虚拟机器的容错机制所产生的延迟时间,使虚拟机器可在固定的延迟时间内回应。
为让本公开能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1绘示为虚拟机器容错机制所造成的延迟时间的示意图。
图2A是根据一范例实施例所绘示的数据处理系统的架构图。
图2B是根据一范例实施例所绘示的数据处理系统的方块图。
图3是根据一范例实施例所绘示的虚拟机器运作的示意图。
图4A是根据一范例实施例所绘示的数据数据处理方法的流程图。
图4B是根据另一范例实施例所绘示的数据处理方法的流程图。
符号说明
100:数据处理系统
110:第一伺服器
112、122、602:处理装置
114、124、604:缓冲存储器
116、126、606:通讯装置
118:第一虚拟机器
120:第二伺服器
128:第二虚拟机器
130:总线
140:电子装置
302:运行操作
304:快照操作
306:传输操作
308:输出操作
310:延迟时间
Tbk:启动时间点
Tpp:预定时间点
Ta:运行时间
Tb:快照时间
Tc:预估传输时间
TP:预定时间
TR:剩余处理时间
TML:预期延迟
t1、t2、t3:时间
S401、S403、S405、S407、S421、S423、S425、S427、S429、S431:数据处理方法的步骤
具体实施方式
为了能够在具容错机制的虚拟机器架构中控制工作负载的延迟时间,本公开藉由预估剩余处理时间,由此达到将延迟时间控制在所设定的延迟范围内。
图2A是根据一范例实施例所绘示的数据处理系统的架构图,并且图2B是根据一范例实施例所绘示的数据处理系统的方块图。必须了解的是,图2A与图2B的范例仅是为了方便说明,并不用以限制本公开。
请参照图2A与图2B,数据处理系统100包括第一伺服器110以及第二伺服器120,第一伺服器110包括处理装置112、缓冲存储器114、通讯装置116以及第一虚拟机器118,而第二伺服器120包括处理装置122、缓冲存储器124、通讯装置126以及第二虚拟机器128。
处理装置112耦接缓冲存储器114及通讯装置116,并且用以控制第一伺服器110的整体运作。例如,处理装置112为中央处理单元(Central Processing Unit,CPU)。
缓冲存储器114用以暂存处理装置112所执行的指令或数据。例如,缓冲存储器114可以是动态随机存取存储器(Dynamic Random Access Memory,DRAM)或静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本公开不限于此,缓冲存储器114也可以是其他适合的存储器。
通讯装置116用以通过有线或无线的方式与外部的其他装置建立网络连接。例如,第一伺服器110可通过通讯装置116与第二伺服器120通讯。
类似地,处理装置122、缓冲存储器124与通讯装置126分别相同或相似于上述处理装置112、缓冲存储器114与通讯装置116,在此不再重述。
第一伺服器110与第二伺服器120可分别地运转一个或多个虚拟机器以提供不同的服务。例如,第一虚拟机器118运行在第一伺服器110中,而第二虚拟机器128运行在第二伺服器120中。必须了解的是,本范例以两个伺服器与两个虚拟机器为例进行说明,但本公开并不限于此。也就是说,数据处理系统100可包括两个以上的伺服器,且每一伺服器可运行有一个或多个虚拟机器。例如,处理系统100还包括一第三伺服器,第三伺服器用以运行至少一虚拟机器(也称为第三虚拟机器)。
总线130用以提供伺服器传输数据的路径,例如,第一伺服器110与第二伺服器120可通过总线130互相传送需要处理或是需要存取的数据。在本范例实施例中,总线130是兼容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCIe)标准。然而,必须了解的是,本公开不限于此,总线130还可以符合其他适合的标准。
具体而言,在伺服器的操作系统的运作中,是以分页(page)来管理存储器,当第一虚拟机器118需要修改某一笔记录中的数据时,第一虚拟机器118会将此数据所在的分页从硬盘读到缓冲存储器114中并修改此分页中的记录。此时,缓冲存储器114中的分页已与硬盘中所对应的分页不相同,因此,缓冲存储器114中被更新过的分页即称为更新分页(dirtypage)。
为便于说明本公开的数据处理方法与数据处理系统的实施方式,以下以伺服器的备份操作作为范例来说明。然而,本公开的数据处理方法与数据处理系统并不限于适用在备份操作上。本公开的数据处理方法与数据处理系统也可适用在其他的数据处理操作上,例如数据的复制或搬移等操作。
图3是根据一范例实施例所绘示的虚拟机器运作的示意图。
请先参照图3,具有容错机制的虚拟机器的数据处理周期(例如,备份周期)可分为运行操作302、快照操作304、传输操作306以及输出操作308等四个阶段。一般而言,第一虚拟机器118会在运行操作302中根据来自用户的请求指令来新增、修改或存取硬盘中的数据。例如,在运行操作302中,第一虚拟机器118会将上述更新分页以及用以回应用户的回应信息暂存于缓冲存储器114中。通过执行快照操作304可备份运行操作302中所获得的更新分页以产生数据快照,并且在完成快照操作304后,第一虚拟机器118会回复执行运行操作302。例如,快照操作304的快照时间大约为1~2毫秒(ms)。在数据处理周期中快照操作304的快照时间相对短,因此,在本范例实施例中,其可被视为一个固定值。而第一虚拟机器118是在传输操作306中将数据快照传送至第二虚拟机器128以完成数据的备份。特别是,当第二伺服器120作为第一伺服器110的备份伺服器时,在数据处理系统100包括多个第一伺服器110的例子中,第二虚拟机器128也可同时服务此多个第一伺服器110的多个第一虚拟机器118,即,第二伺服器120可同时作为多个第一伺服器110的备份伺服器。在完成数据快照的传输后,由于更新分页所对应的数据快照已备份至第二虚拟机器128,因此,倘若当第一伺服器110损坏且无法提供服务时,第二伺服器120的第二虚拟机器128可即时地接替执行第一伺服器110的第一虚拟机器118所运行的工作并提供对应的服务。值得注意的是,在数据处理系统100还包括第三伺服器的例子中,第二虚拟机器128还会执行快照操作304与传输操作306以传送数据快照至运行于第三伺服器的虚拟机器(例如,第三虚拟机器),由此提供更可靠的备份。此外,输出操作308则是将用以回应用户的回应信息输出。例如,第一虚拟机器118或第二虚拟机器128会执行输出操作308以传送回应信息至电子装置。特别是,由于传输操作306主要是在传输更新分页,因此,传输操作306的时间会根据所收集的更新分页的传输量而改变,据此,本公开的数据处理系统100即是参照所收集的更新分页的传输量与传输操作306的处理时间来控制延迟时间。
更详细来说,第一虚拟机器118会根据在一预定时间点之前所收集的更新分页的传输量计算一剩余处理时间,并且根据此剩余处理时间来执行运行操作302。倘若经过计算之后已无剩余处理时间,则第一虚拟机器118会直接执行快照操作304与传输操作306以将对应的数据快照传送至第二虚拟机器128。为了更清楚地描述本公开的数据处理系统100及其虚拟机器的运作,以下的范例将同时参照图3来进行说明。
图4A是根据一范例实施例所绘示的数据处理方法的流程图。
请同时参照图3与图4A,在步骤S401中,第一虚拟机器118会执行运行操作302。在运行操作302的期间,第一虚拟机器118会收集多个更新分页。在步骤S403中,第一虚拟机器118会在运行操作302的期间中的预定时间点Tpp暂停运行操作302,且根据在运行操作的期间中的预定时间点Tpp之前所收集的多个更新分页的传输量计算剩余处理时间TR。在预定时间点Tpp,第一虚拟机器118的运行操作302已执行了预定时间TP。因此,第一虚拟机器118是根据在预定时间TP内所收集的更新分页的传输量来计算剩余处理时间TR。接着,在步骤S405中,第一虚拟机器118会根据剩余处理时间TR继续执行运行操作302、暂停运行操作302与执行快照操作304以产生对应的数据快照。也就是说,在剩余处理时间TR中,第一虚拟机器118会继续收集多个更新分页。在此,剩余处理时间TR表示预定时间点Tpp至启动时间点Tbk之间的时间。换句话说,第一虚拟机器118可根据所计算的剩余处理时间TR来决定启动时间点Tbk。启动时间点Tbk是指在一个数据处理周期中,接续在运行操作之后执行的另一个操作开始执行的时间点。在本实施例中,启动时间点Tbk可为快照操作304开始执行的时间点。因此,在第一虚拟机器118根据剩余处理时间TR继续执行运行操作302之后,第一虚拟机器118会在启动时间点Tbk暂停运行操作302,并接着执行快照操作304。之后,在步骤S407中,第一虚拟机器118会执行传输操作306以传送数据快照至第二虚拟机器128,由此完成一个数据处理周期。
倘若在数据处理周期的期间中,用户在时间t1通过电子装置140对第一虚拟机器118发出请求指令,则第一虚拟机器118会根据此请求指令执行处理操作以获得对应此请求指令的回应信息。在未使用容错机制的虚拟机器的数据处理系统中,第一虚拟机器118在时间t1从电子装置140接收到请求指令,并根据此请求指令执行处理操作以获得对应请求指令的回应信息后,可随即地在时间t2将回应信息传送给至电子装置140。反之,在使用容错机制的虚拟机器的数据处理系统中,为确保所有更新分页均成功地复制或备份至第二虚拟机器128,第一虚拟机器118会将此些回应信息先暂存于缓冲存储器114中,直到其执行完快照操作304与传输操作306之后,执行输出操作308以在时间t3将回应信息传送给电子装置140。在此,由于时间t1到时间t2的回应时间为一固定值,因此,本范例实施例是将时间t2至时间t3的期间定义为延迟时间310。然而,本公开并不限于此,例如,在另一范例实施例中,延迟时间310亦可以是时间t1到时间t3的期间。
本公开即是将上述延迟时间310控制在一特定范围内,由此可确保数据处理系统100的回应时间可满足具延迟敏感的工作负载需求。在本公开范例实施例中,第一虚拟机器118会设定一预期延迟TML。再者,第一虚拟机器118会根据在预定时间TP内所收集的多个更新分页的传输量与预定时间TP计算预估更新速率,并且根据预估更新速率取得一参数。第一虚拟机器118会根据预期延迟TML、预定时间TP、产生对应的数据快照的快照时间Tb与上述的参数来计算剩余处理时间TR
特别是,第一虚拟机器118会根据多个先前更新分页的传输量(亦称为先前传输量)与传输此些更新分页的时间(亦称为先前传输时间)计算传输速率。预定时间TP与剩余处理时间TR的总和可表示在启动时间点Tbk之前的运行操作302的运行时间Ta,因此第一虚拟机器118可根据预估更新速率、运行时间Ta与传输速率来取得预估传输时间Tc。例如,第一虚拟机器118可将预估更新速率乘以运行时间Ta来取得对应在运行时间Ta中所收集的更新分页的一预估传输量,并且将此预估传输量除以传输速率来取得预估传输时间Tc。所取得的剩余处理时间TR可使运行时间Ta、快照时间Tb与预估传输时间Tc的总和不大于(即小于或等于)所设定的预期延迟TML。藉此可将延迟时间310控制在特定范围内。
如上所述,第一虚拟机器118会根据预估更新速率取得一参数。更详细来说,第一虚拟机器118是根据预估更新速率与传输速率来取得上述的参数。例如,根据预定时间TP、剩余处理时间TR与预估传输时间Tc之间的相关性,第一虚拟机器118可计算预估更新速率与传输速率的一比值,并且将此比值加1作为上述的参数。在此以RP表示预估更新速率,并以RAVG表示传输速率。因此,剩余处理时间TR可根据以下的公式(1)计算而得。
TR=(TML-Tb)/(1+RP/RAVG)-TP (1)
也就是说,当预估更新速率RP小于传输速率RAVG时,剩余处理时间TR相对较大,而当预估更新速率RP大于传输速率时,剩余处理时间TR相对较少。在预估更新速率RP为最大更新速率的情况下,将不会有多余的剩余处理时间TR。最大更新速率可为电子装置140写入数据的最大速率,也就是说,各种工作负载产生更新分页的更新速率不会大于最大更新速率。当预估更新速率RP为最大更新速率时,第一虚拟机器118在预定时间TP内所收集的更新分页的传输量会近似或等于第一虚拟机器118在启动时间点Tbk之前的运行操作302的期间中所能收集的最大传输量。
基于上述,在取得剩余处理时间TR之后,第一虚拟机器118根据剩余处理时间TR可能会继续执行运行操作302,或者不继续执行运行操作302而是执行快照操作304。以下将以图4B为范例来说明。
图4B是根据另一范例实施例所绘示的数据处理方法的流程图。
请同时参照图3与图4B,在步骤S421中,第一虚拟机器118会执行运行操作302。在步骤S423中,第一虚拟机器118会在运行操作302的期间中的预定时间点Tpp暂停运行操作302,且根据在运行操作的期间中的预定时间点Tpp之前所收集的多个第一更新分页的传输量计算剩余处理时间TR。图4B的步骤S421~S423的操作与图4A的步骤S401~S403的操作相同,于此便不再赘述。
在本范例实施例中,在取得剩余处理时间TR之后,第一虚拟机器118会根据剩余处理时间TR来决定是否可继续执行运行操作302。例如,在步骤S425中,第一虚拟机器118会判断剩余处理时间TR是否大于0。
倘若剩余处理时间TR大于0,第一虚拟机器118会判定有多余的剩余处理时间TR可继续执行运行操作302,因而执行步骤S427。在步骤S427中,第一虚拟机器118会根据剩余处理时间TR继续执行运行操作302以收集多个第二更新分页。当继续执行运行操作302并经过剩余处理时间TR,第一虚拟机器118会判定已完成根据剩余处理时间TR继续执行运行操作302而收集多个第二更新分页的操作(亦即步骤S427)。而在完成根据剩余处理时间TR所继续执行的运行操作302之后,在步骤S429中,第一虚拟机器118会暂停运行操作302并执行快照操作304以产生对应的数据快照。在此情况下,数据快照是根据第一更新分页与第二更新分页来产生。在一范例实施例中,在完成根据剩余处理时间TR所继续执行的运行操作302的时间点相当于启动时间点Tbk。因此,第一虚拟机器118会在启动时间点Tbk执行步骤S429。之后,在步骤S431中,第一虚拟机器118会执行传输操作306以传送数据快照至第二虚拟机器128,由此完成一个数据处理周期。
然而,倘若剩余处理时间TR不大于0,第一虚拟机器118不会继续执行运行操作302而会直接执行步骤S429。也就是说,在判断出没有多余的剩余处理时间TR之后,第一虚拟机器118会直接执行步骤S429而暂停运行操作302并执行快照操作304以产生对应的数据快照。在一范例实施例中,预定时间点Tpp会相当于启动时间点Tbk。由于第一虚拟机器118并未继续执行运行操作302,因此在启动时间点Tbk之前不会收集到第一更新分页以外的其他更新分页。在此情况下,数据快照是仅根据第一更新分页来产生。之后,在步骤S431中,第一虚拟机器118会执行传输操作306以传送数据快照至第二虚拟机器128,由此完成一个数据处理周期。
在一范例实施例中,第一虚拟机器118可将所收集的更新分页切分成多个数据单元,并且根据此些数据单元中实际被更新的数据单元来取得更新分页的传输量。实际被更新的数据单元的数目不会大于从所收集的更新分页切分出的多个数据单元的数目。在执行快照操作304时,第一虚拟机器118会根据实际被更新的数据单元来产生对应的数据快照。以上述的第一更新分页为例,第一虚拟机器118可将每一个第一更新分页切分成128个第一数据单元,并且从此些第一数据单元中判断出实际被更新的一个或多个第二数据单元。所有第一更新分页中实际被更新的多个第二数据单元的总数据量即为所有第一更新分页的传输量。第一虚拟机器118也可以相同于上述的方式来取得所有第二更新分页的传输量。
此外,第一虚拟机器118还可基于上述将每个更新分页切分成多个数据单元的方式,根据对应多个检查时间点的传输量来预估之后的传输量。在此,对应某个检查时间点的传输量是指对应在运行操作的期间中的此检查时间点之前所收集的更新分页的传输量。为便于说明,一个数据单元的数据量称为1数据单位,并且1数据单位可为多个位(bits)。
在一范例实施例中,预估的传输量可藉由将在某个检查时间点的传输量除以对应此检查时间点的经过时间所取得的数值乘以一预估时间来取得。例如,假设预估时间为5毫秒,并且每1毫秒检查一次。在第一个检查时间点(即经过1毫秒)取得的传输量为2数据单位,因此在5毫秒时取得的传输量可被预估为10数据单位。在第二个检查时间点(即经过2毫秒)取得的传输量为5数据单位,因此在5毫秒时取得的传输量可被预估为12.5数据单位(亦即5/2*5=12.5)。
在另一范例实施例中,预估的传输量也可藉由将在某个检查时间点的传输量与前一个检查时间点的传输量之间的传输量差异值乘以一预估时间来取得。例如,假设预估时间为5毫秒,并且每1毫秒检查一次。在第一个检查时间点(即经过1毫秒)取得的传输量为2单位,并且开始到第一个检查点之间的传输量差异值为2单位,因此在5毫秒时取得的传输量可被预估为10单位(亦即2*5=10)。在第二个检查时间点(即经过2毫秒)取得的传输量为5单位,并且第二个检查时间点与第一检查时间点之间的传输量差异值为3单位,因此在5毫秒时取得的传输量可被预估为15单位(亦即3*5=15)。
基于上述取得预估的传输量的方式,预期延迟TML与预定时间点Tpp可藉由实验的方式来取得最适合的数值。在一范例实施例中,预期延迟TML可设定为10毫秒。此外,假设一个预期延迟TML为1时间单位,而对应预定时间点Tpp的预定时间TP则可设定为0.4时间单位。例如,倘若预期延迟TML为10毫秒,则对应预定时间点Tpp的预定时间TP可设定为4毫秒。也就是说,运行操作302被执行了4毫秒时的时间点即为预定时间点TP
举例而言,在预期延迟TML为10毫秒的例子中,预定时间TP为4毫秒。假设第一虚拟机器118在预定时间TP内所收集的更新分页的传输量相当于100个更新分页的大小。例如,一个更新分页的大小为4KB(Bytes),则100个更新分页的大小即为400KB。接着,第一虚拟机器118会根据在预定时间TP内所收集的更新分页的传输量计算出预估更新速率为100KB/每毫秒。假设传输速率为200KB/每毫秒(亦即相当于50个更新分页/每毫秒),因此第一虚拟机器118可根据前述的公式(1)计算出剩余处理时间为2毫秒。基此,第一虚拟机器118会继续执行运行操作302并且在经过2毫秒之后暂停运行操作302而执行快照操作304。
本公开的另一范例实施例提出一种计算机程序产品,用以执行上述的数据处理方法。此计算机程序产品包括至少一程序代码,且由电子装置(例如第一伺服器110或第二伺服器120)的处理装置载入并执行此至少一程序代码之后,可完成上述的数据处理方法以及数据处理系统100的功能。
综上所述,本公开范例实施例的数据处理方法及其处理系统与计算机程序产品可藉由所收集的更新分页的传输量来预估可继续执行运行操作的剩余处理时间来动态地调整运行操作的运行时间与决定启动时间点,据此,可将延迟时间控制在特定的预期延迟时间内,进而有效地改善延迟敏感的工作负载需求因延迟时间过长而造成的服务中断,且提升使用者的操作体验。
虽然本公开已以实施例公开如上,然其并非用以限定本公开,任何所属技术领域中具有通常知识者,在不脱离本公开的精神和范围内,当可作些许的更动与润饰,故本公开的保护范围当视所附的权利要求所界定者为准。

Claims (18)

1.一种数据处理方法,其特征在于,所述数据处理方法包括:
执行运行操作;
在该运行操作的期间中的预定时间点暂停所述运行操作,且根据在所述运行操作的期间中的所述预定时间点之前所收集的多个更新分页的传输量计算剩余处理时间;
根据所述剩余处理时间继续执行所述运行操作、暂停所述运行操作与执行快照操作以产生对应的数据快照;以及
执行传输操作以传送所述数据快照。
2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
设定预期延迟,
其中根据在所述运行操作的期间中的所述预定时间点之前所收集的所述多个更新分页的所述传输量计算所述剩余处理时间的步骤包括:
根据所述多个更新分页的所述传输量与对应所述预定时间点的预定时间计算预估更新速率;
根据所述预估更新速率取得参数;以及
根据所述预期延迟、对应所述预定时间点的所述预定时间、产生对应的所述数据快照的快照时间与所述参数来计算所述剩余处理时间,
其中对应所述预定时间点的所述预定时间与所述剩余处理时间的总和等于所述运行操作的运行时间,并且所述运行时间、所述快照时间与传送所述数据快照的预估传输时间的总和不大于所述预期延迟。
3.根据权利要求2所述的数据处理方法,其特征在于,还包括:
根据多个先前更新分页的先前传输量与传输所述多个先前更新分页的先前传输时间计算传输速率,
其中根据所述预估更新速率取得所述参数的步骤包括:
根据所述预估更新速率与所述传输速率取得所述参数。
4.根据权利要求1所述的数据处理方法,其特征在于,在所述运行操作的期间中的所述预定时间点之前所收集的多个更新分页包括多个第一更新分页,
其中根据所述剩余处理时间继续执行所述运行操作、暂停所述运行操作与执行所述快照操作以产生对应的所述数据快照的步骤包括:
倘若所述剩余处理时间大于0时,根据所述剩余处理时间继续执行所述运行操作以收集多个第二更新分页,并且在完成根据所述剩余处理时间所继续执行的所述运行操作之后,暂停所述运行操作并执行所述快照操作以产生对应的所述数据快照,
其中所述数据快照是根据所述多个第一更新分页与所述多个第二更新分页而产生。
5.根据权利要求4所述的数据处理方法,其特征在于,根据所述剩余处理时间继续执行所述运行操作、暂停所述运行操作与执行所述快照操作以产生对应的所述数据快照的步骤还包括:
倘若所述剩余处理时间不大于0时,暂停所述运行操作并执行所述快照操作以产生对应的所述数据快照,其中所述数据快照是根据所述多个第一更新分页而产生。
6.根据权利要求1所述的数据处理方法,其特征在于,还包括:
将所述多个更新分页切分成多个第一数据单元;以及
根据所述多个第一数据单元取得多个第二数据单元,且根据所述多个第二数据单元取得所述多个更新分页的所述传输量,
其中所述多个第二数据单元的数目不大于所述多个第一数据单元的数目。
7.根据权利要求1所述的数据处理方法,其特征在于,还包括:
从电子装置接收请求指令,且根据所述请求指令执行处理操作以获得对应所述请求指令的回应信息;以及
在执行所述快照操作与所述传输操作之后,执行输出操作以传送所述回应信息至所述电子装置。
8.根据权利要求1所述的数据处理方法,其特征在于,还包括:
在完成所述快照操作后,回复执行所述运行操作。
9.一种数据处理系统,其特征在于,包括:
第一伺服器,用以运行第一虚拟机器,其中所述第一虚拟机器用以执行运行操作;以及
第二伺服器,用以运行第二虚拟机器,所述第二伺服器通过总线耦接至所述第一伺服器,
其中所述第一虚拟机器用以在所述运行操作的期间中的预定时间点暂停所述运行操作,且根据在所述运行操作的期间中的所述预定时间点之前所收集的多个更新分页的传输量计算剩余处理时间,
其中所述第一虚拟机器还用以根据所述剩余处理时间继续执行所述运行操作、暂停所述运行操作与执行快照操作以产生对应的数据快照,
其中,所述第一虚拟机器还用以执行传输操作以传送所述数据快照。
10.根据权利要求9所述的数据处理系统,其特征在于,所述第一虚拟机器还用以设定预期延迟,
其中所述第一虚拟机器还用以根据所述多个更新分页的所述传输量与对应所述预定时间点的预定时间计算预估更新速率,根据所述预估更新速率取得参数,并且根据所述预期延迟、对应所述预定时间点的所述预定时间、产生对应的所述数据快照的快照时间与所述参数来计算所述剩余处理时间,
其中对应所述预定时间点的所述预定时间与所述剩余处理时间的总和等于所述运行操作的运行时间,并且所述运行时间、所述快照时间与传送所述数据快照的预估传输时间的总和不大于所述预期延迟。
11.根据权利要求10所述的数据处理系统,其特征在于,所述第一虚拟机器还用以根据多个先前更新分页的先前传输量与传输所述多个先前更新分页的先前传输时间计算传输速率,并且根据所述预估更新速率与所述传输速率取得所述参数。
12.根据权利要求9所述的数据处理系统,其特征在于,在所述运行操作的期间中的所述预定时间点之前所收集的多个更新分页包括多个第一更新分页,
其中倘若所述剩余处理时间大于0时,所述第一虚拟机器用以根据所述剩余处理时间继续执行所述运行操作以收集多个第二更新分页,并且在完成根据所述剩余处理时间所继续执行的所述运行操作之后,暂停所述运行操作并执行所述快照操作以产生对应的所述数据快照,
其中该数据快照是根据所述多个第一更新分页与所述多个第二更新分页而产生。
13.根据权利要求12所述的数据处理系统,其特征在于,倘若所述剩余处理时间不大于0时,所述第一虚拟机器用以执行暂停所述运行操作并执行所述快照操作以产生对应的所述数据快照,
其中所述数据快照是根据所述多个第一更新分页而产生。
14.根据权利要求9所述的数据处理系统,其特征在于,所述第一虚拟机器还用以将所述多个更新分页切分成多个第一数据单元,根据所述多个第一数据单元取得多个第二数据单元,且根据所述多个第二数据单元取得所述多个更新分页的所述传输量,
其中所述多个第二数据单元的数目不大于所述多个第一数据单元的数目。
15.根据权利要求9所述的数据处理系统,其特征在于,所述第一虚拟机器还用以从电子装置接收请求指令,且根据所述请求指令执行处理操作以获得对应所述请求指令的回应信息,
其中所述第一虚拟机器还用以在执行所述快照操作与所述传输操作之后,执行输出操作以传送所述回应信息至所述电子装置。
16.根据权利要求9所述的数据处理系统,其特征在于,所述第一虚拟机器还用以在完成所述快照操作后,回复执行所述运行操作。
17.根据权利要求9所述的数据处理系统,其特征在于,所述总线符合一高速周边零件连接接口标准。
18.一种计算机程序产品,具有至少一程序代码,当电子装置载入所述至少一程序代码并执行后,可完成权利要求1所述的方法。
CN201710564886.6A 2017-05-24 2017-07-12 数据处理方法与数据处理系统 Active CN108958880B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106117127 2017-05-24
TW106117127A TWI624757B (zh) 2017-05-24 2017-05-24 資料處理方法、資料處理系統與電腦程式產品

Publications (2)

Publication Number Publication Date
CN108958880A true CN108958880A (zh) 2018-12-07
CN108958880B CN108958880B (zh) 2021-02-26

Family

ID=62951743

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710564886.6A Active CN108958880B (zh) 2017-05-24 2017-07-12 数据处理方法与数据处理系统

Country Status (3)

Country Link
US (1) US10467106B2 (zh)
CN (1) CN108958880B (zh)
TW (1) TWI624757B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10379923B2 (en) * 2017-09-15 2019-08-13 International Business Machines Corporation Efficiently repairing virtual machines by means of DVFS-aware proactive scheduling
US11366681B2 (en) * 2019-03-27 2022-06-21 Amazon Technologies, Inc. Chaining virtual machines
US11467858B2 (en) 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US10963287B2 (en) 2019-03-27 2021-03-30 Amazon Technologies, Inc. Reducing request latency in a multi-tenant web service host
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
TWI763331B (zh) * 2021-02-25 2022-05-01 威聯通科技股份有限公司 虛擬機器的備用方法與備用系統
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074035B1 (en) * 2003-07-22 2011-12-06 Acronis, Inc. System and method for using multivolume snapshots for online data backup
US8429359B1 (en) * 2004-12-31 2013-04-23 Symantec Operating Corporation Method and apparatus for dynamically backing up database files
US8549241B2 (en) * 2010-01-06 2013-10-01 Vmware, Inc. Method and system for frequent checkpointing
US20150205671A1 (en) * 2013-12-30 2015-07-23 Thomas D. Bissett Dynamic Checkpointing Systems and Methods
US9170891B1 (en) * 2012-09-10 2015-10-27 Amazon Technologies, Inc. Predictive upload of snapshot data
TWI509426B (zh) * 2014-09-17 2015-11-21 Prophetstor Data Services Inc 用於達成無干擾性資料重建的系統
US20150370645A1 (en) * 2013-02-27 2015-12-24 Hewlett-Packard Development Company, L.P. Selecting a backup type based on changed data
CN106326041A (zh) * 2016-08-31 2017-01-11 杭州沃趣科技股份有限公司 一种用于数据库秒级恢复的方法
CN106528189A (zh) * 2015-09-10 2017-03-22 阿里巴巴集团控股有限公司 一种启动备份任务的方法、装置及电子设备
CN106874143A (zh) * 2015-12-14 2017-06-20 财团法人工业技术研究院 服务器备份方法及其备份系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US370645A (en) * 1887-09-27 Henry okdenstein
US8499297B2 (en) 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
US8201169B2 (en) 2009-06-15 2012-06-12 Vmware, Inc. Virtual machine fault tolerance
US8812907B1 (en) 2010-07-19 2014-08-19 Marathon Technologies Corporation Fault tolerant computing systems using checkpoints
CN102136993B (zh) 2010-07-29 2016-12-21 华为技术有限公司 一种数据迁移的方法、装置和系统
CN102521071B (zh) * 2011-11-24 2013-12-11 广州杰赛科技股份有限公司 一种基于私有云的虚拟机维护方法
JP5561334B2 (ja) * 2012-09-27 2014-07-30 日本電気株式会社 データ転送装置
CN103019884B (zh) 2012-11-21 2015-07-01 北京航空航天大学 基于虚拟机快照的内存页去重方法及装置
US9047238B2 (en) * 2012-11-28 2015-06-02 Red Hat Israel, Ltd. Creating a virtual machine from a snapshot
US8983961B2 (en) 2012-11-29 2015-03-17 International Business Machines Corporation High availability for cloud servers
US9563452B2 (en) * 2013-06-28 2017-02-07 Sap Se Cloud-enabled, distributed and high-availability system with virtual machine checkpointing
CN104268003B (zh) 2014-09-30 2017-11-14 南京理工大学 一种适用于虚拟机动态迁移的内存状态迁移方法
CN104572248B (zh) * 2014-12-17 2018-01-23 中电科华云信息技术有限公司 虚拟机动态保存快照的方法
US9817689B2 (en) * 2015-02-27 2017-11-14 Red Hat, Inc. Dirty page tracking of guest-uncached memory
US10326836B2 (en) * 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074035B1 (en) * 2003-07-22 2011-12-06 Acronis, Inc. System and method for using multivolume snapshots for online data backup
US8429359B1 (en) * 2004-12-31 2013-04-23 Symantec Operating Corporation Method and apparatus for dynamically backing up database files
US8549241B2 (en) * 2010-01-06 2013-10-01 Vmware, Inc. Method and system for frequent checkpointing
US9170891B1 (en) * 2012-09-10 2015-10-27 Amazon Technologies, Inc. Predictive upload of snapshot data
US20150370645A1 (en) * 2013-02-27 2015-12-24 Hewlett-Packard Development Company, L.P. Selecting a backup type based on changed data
US20150205671A1 (en) * 2013-12-30 2015-07-23 Thomas D. Bissett Dynamic Checkpointing Systems and Methods
TWI509426B (zh) * 2014-09-17 2015-11-21 Prophetstor Data Services Inc 用於達成無干擾性資料重建的系統
CN106528189A (zh) * 2015-09-10 2017-03-22 阿里巴巴集团控股有限公司 一种启动备份任务的方法、装置及电子设备
CN106874143A (zh) * 2015-12-14 2017-06-20 财团法人工业技术研究院 服务器备份方法及其备份系统
CN106326041A (zh) * 2016-08-31 2017-01-11 杭州沃趣科技股份有限公司 一种用于数据库秒级恢复的方法

Also Published As

Publication number Publication date
US10467106B2 (en) 2019-11-05
TW201901425A (zh) 2019-01-01
TWI624757B (zh) 2018-05-21
CN108958880B (zh) 2021-02-26
US20180341555A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
CN108958880A (zh) 数据处理方法、数据处理系统与计算机程序产品
CN106528327B (zh) 一种数据处理方法以及备份服务器
US10929157B2 (en) Techniques for checkpointing/delivery between primary and secondary virtual machines
CN103201724B (zh) 在高可用性虚拟机环境中提供高可用性应用程序
US9336040B2 (en) Techniques for remapping sessions for a multi-threaded application
US9251002B2 (en) System and method for writing checkpointing data
US9569517B1 (en) Fault tolerant distributed key-value storage
CN106874143B (zh) 服务器备份方法及其备份系统
US11023265B2 (en) Techniques for improving output-packet-similarity between primary and secondary virtual machines
US8612973B2 (en) Method and system for handling interrupts within computer system during hardware resource migration
CN111190766A (zh) 基于HBase数据库的跨机房集群的容灾方法、装置和系统
CN110427284A (zh) 数据处理方法、分布式系统、计算机系统和介质
EP2798496B1 (en) Method and apparatus for synchronization in primary-backup replication schemes
CN107704310B (zh) 一种实现容器集群管理的方法、装置和设备
CN102833281A (zh) 一种分布式自增计数的实现方法、装置及系统
CN104823155A (zh) 基于存储器的旗语
CN108632106A (zh) 监控服务设备的系统
CN105051692A (zh) 通过隔离的自动化故障处理
US7921220B2 (en) Reducing occurrences of two-phase commits in a multi-node computing system
JP2012093899A (ja) 計算機システム、シミュレーション方法、及びプログラム
US20100085871A1 (en) Resource leak recovery in a multi-node computer system
JP2019159724A (ja) 管理装置、管理プログラム、および管理方法
JP2014139706A (ja) フォールトトレラントシステム
TWI469573B (zh) 系統錯誤處理方法與使用其之伺服器系統
TWI465072B (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