CN105453057A - 将差别信息存储在备份系统中 - Google Patents

将差别信息存储在备份系统中 Download PDF

Info

Publication number
CN105453057A
CN105453057A CN201380078664.3A CN201380078664A CN105453057A CN 105453057 A CN105453057 A CN 105453057A CN 201380078664 A CN201380078664 A CN 201380078664A CN 105453057 A CN105453057 A CN 105453057A
Authority
CN
China
Prior art keywords
version
information
data
computing equipment
stored
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.)
Withdrawn
Application number
CN201380078664.3A
Other languages
English (en)
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.)
Lonza AG
Original Assignee
Lonza AG
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 Lonza AG filed Critical Lonza AG
Publication of CN105453057A publication Critical patent/CN105453057A/zh
Withdrawn legal-status Critical Current

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/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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • 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/1464Management of the backup or restore process for networked environments
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文公开的示例涉及将差别信息存储在备份系统中。示例包括将差别信息存储在备份系统的远程备份存储器中,该差别信息表示在计算设备处本地存储的数据与在版本控制系统的版本控制存储器中存储的数据的版本之间的差别。

Description

将差别信息存储在备份系统中
背景技术
计算设备可产生大量数据,这些数据可由计算设备在本地存储。例如,因计算设备的故障而引起的这种数据的丢失可能对使用计算设备的企业、个人或其他实体是不利的。为了保护数据免遭丢失,备份系统可以存储计算设备的至少一部分数据。在这样的示例中,如果计算设备的故障妨碍了一些部分的数据的获取,则有可能从备份系统恢复数据。
附图说明
以下详细描述参考附图,其中:
图1是用于将差别信息存储在备份系统中的示例计算设备的框图;
图2是用于根据在版本控制系统中存储的数据并且根据在备份系统中存储的差别信息来恢复数据的示例计算设备的框图;
图3是用于将差别信息存储在备份系统中的示例方法的流程图;以及
图4是用于确定与位置信息相关联的数据是否被选择用于由备份系统进行的版本认识备份的示例方法的流程图。
具体实施方式
如本文所使用的,“备份系统”(或“数据备份系统”)可以是数据存储系统,该数据存储系统将计算设备所存储的数据复制到该数据存储系统的与计算设备分离的存储器,并且将所复制的数据恢复到计算设备或其他存储器。例如,备份系统可将计算设备的数据复制到备份系统的存储器,并且如果存储在该计算设备上的数据后来丢失,则备份系统可将所复制的数据恢复到计算设备或其他存储器。备份系统可以能够备份大量的数据。然而,减少备份系统的用户所备份的数据量可提升备份系统的性能,并且降低向用户提供备份系统的成本。如此,可能期望的是实现减少用户备份的数据量的特征。
在一些示例中,在计算设备处本地存储的一些数据可以在版本控制系统的控制下。在版本控制系统的控制下的这种数据(例如,文件、目录等)在本文中可称为“版本所控制”数据。如本文所使用的,“版本控制系统”(其可以称为“版本控制”或“资源控制”系统)可以是对数据(例如,文件、目录等)的多个版本(或“修订本”)进行存储的系统,每个版本包括数据的当该数据在各个时间存在时的一个副本。如本文所使用的,数据的“版本”是数据的当该数据在给定时间存在时的一个副本。在一些示例中,由版本控制系统存储的数据的每个版本可以与对数据的版本进行识别的各个版本信息(例如,各个版本号或其他版本标识符)相关联。在一些示例中,可以在任何时间从版本控制系统获得由版本控制系统存储的数据的这种给定版本。如此,在备份系统中备份版本所控制数据会是无效率的,因为数据的版本可能已被存储在版本控制系统中。由于可能通常在任何时间从版本控制系统恢复这个版本,所以完全备份版本所控制数据会是多余的,因为版本所控制数据的部分可能最终被存储在版本控制系统和备份系统两者中。
为了解决这些问题,在本文描述的示例中,备份系统可以从版本控制系统获取与由计算设备本地存储的数据相关联的版本访问信息,其中版本访问信息可用于访问在版本控制系统中存储的该数据的版本。在这样的示例中,备份系统可将版本访问信息和差别信息存储在备份系统的远程备份存储器中,该差别信息表示本地存储的数据与在版本控制存储器中存储的数据的版本之间的差别。备份系统还可至少根据在版本控制存储器中存储的数据的版本和在远程备份存储器中存储的差别信息将数据恢复到计算设备。
在这样的示例中,备份系统可完全省略备份版本所控制数据,而改为将对这种数据的备份限制于该数据与在版本控制系统中存储的该数据的完整版本之间的差别、以及可用于从版本控制系统获得该数据的完整版本的数据。以这种方式,备份系统可以实现在该数据包括版本所控制数据时为了备份计算设备的该数据而占用的存储器的数量的明显减少。另外,通过这种示例实现的减少会是很大的,因为版本控制通常用于管理诸如用于软件开发项目的源代码之类的数据。
现在参考图,图1是用于将差别信息存储在备份系统170中的示例计算设备100的框图。如本文中所使用的,“计算设备”可以是台式计算机、笔记本电脑、工作站、平板电脑、移动电话、智能设备、服务器、刀锋服务器外壳或任何其他处理设备或装备。在图1的示例中,计算设备100包括处理资源110和编码有指令121-123的机器可读存储介质120。在某些示例中,存储介质120可包括附加的指令。在一些示例中,指令121-123和在本文中描述的与存储介质120相关的任何其他指令可存储在对计算设备110和处理资源110是远程的但可访问的机器可读存储介质上。
在本文所描述的示例中,处理资源可以包括例如一个处理器、或者在单个计算设备中包括的或跨多个计算设备分布的多个处理器。如本文所使用的,“处理器”可以是中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、被配置成获得并执行指令的现场可编程门阵列(FPGA)、适于获得并且执行被存储在机器可读存储介质上的指令的其他电子电路、或它们的组合中的至少一个。处理资源110可以取得、解码并且执行被存储在存储介质120上的指令,以执行下面所描述的功能。在其他示例中,存储介质120的任意指令的功能可以实现为电子电路的形式、编码在机器可读存储介质上的可执行指令的形式、或其结合。
在图1的示例中,计算设备100可以与版本控制系统160的版本控制存储器162通信。计算设备100还可以与备份系统170的备份存储器172通信。版本控制存储器162和备份存储器172可以均由至少一个机器可读存储介质来实现。如本文所描述的,“机器可读存储介质”可以是用于包含或存储诸如可执行指令、数据等的信息的任何电子的、磁性的、光学的或其他物理的存储装置。例如,本文所描述的任何机器可读存储介质可以是随机存取存储器(RAM)、易失性存储器、非易失性存储器、闪存、存储驱动(例如,硬盘)、固态驱动、任意类型的存储盘(例如,压缩磁盘、DVD等)等、或它们的组合中的任意一种。此外,本文所描述的任何机器可读存储介质可以是非暂时性的。
在一些示例中,计算设备100可以经由计算机网络与版本控制存储器162和备份存储器172通信。如本文所使用的,计算机网络可以包括例如局域网(LAN)、无线局域网(WLAN)、虚拟专用网(VPN)、因特网等,或它们的组合。在一些示例中,计算机网络可以包括电话网络(例如,蜂窝电话网络)。在一些示例中,备份存储器172可以对于计算设备100是远程的,并且在本文中可以称为“远程”备份存储器172。如本文所使用的,相对于计算设备是“远程的”的存储器(或任意其他计算资源)是可由计算设备经由计算机网络专门访问的存储器(或另一计算资源)。例如,相对于计算设备100是“远程的”的存储器可经由计算机网络的至少一个部件(例如,路由器或其他计算机网络设备等)、计算设备100的至少一个计算机网络接口(例如,网络接口卡(NIC))等、或者它们的组合来访问。
在一些示例中,存储介质120的指令121-123可以实现备份系统170的至少一部分。例如,指令121-123可以实现备份系统170的备份代理的至少一部分。在这样的示例中,备份代理可以安装在计算设备100上。在图1的示例中,指令121可以检测备份系统170的备份操作已针对计算设备100被触发。如本文所使用的,备份系统的“备份操作”是备份系统的用于将存储在与备份存储器分离的存储器中的数据(整体或部分)复制到备份系统的存储器的处理。在一些示例中,备份操作可包括检测待复制到备份存储器的数据。在一些示例中,备份操作可由计算设备100和备份系统170中至少一个的用户手动触发,或者可由备份系统170至少部分基于备份系统270的预定义进度表来触发。
响应于备份系统170针对计算设备100被触发的备份操作,指令121可检测在计算设备100本地存储的数据140。如本文中所使用的,在计算设备处“本地”存储的数据是存储在计算设备的至少一个机器可读存储介质(例如计算设备的存储驱动(例如,硬盘驱动))、或计算设备的任意其他合适存储器中的数据。在一些示例中,在计算设备处本地存储的数据可以是独立于任何计算机网络的计算设备可访问的数据。例如,本地存储的数据可以经由计算设备的至少一条内部总线或其他内部通信机制对于计算设备可访问。在图1的示例中,本地存储的数据140可以存储在计算设备100的硬盘或其他机器可读存储介质上。
响应于检测由计算设备100本地存储的数据140,指令121可获取与数据140相关联的版本访问信息182。版本访问信息182可以是由计算设备100用于访问数据140的版本150的信息,其中版本150相对于计算设备100远程存储在版本控制系统160的版本控制存储器162中。
在一些示例中,版本访问信息182可以包括版本信息和位置信息。版本信息可识别被存储在版本控制系统160的版本控制存储器162中的数据140的版本150。例如,版本控制系统160可存储数据140的多个版本(包括版本150),每个版本表示当数据140在各个时间存在时的数据140。在这样的示例中,在计算设备100处本地存储的数据140可以与该数据的版本150和识别版本150的版本信息相关联。
如上面所指出的,数据140可以与识别版本150的版本信息相关联,版本150表示当数据140在给定时间存在时的数据140。作为示例,数据140可以通过将版本150从版本控制系统160复制(例如,签出)到计算设备100来创建。在一些示例中,在已从版本150复制了数据140之后,可以对数据140做出改变,使得数据140不同于版本150。可替代地,版本150可以通过在给定时间将数据140复制(例如,签出)到版本控制系统160来创建。在一些示例中,在创建版本150之后,可以对数据140做出改变,使得数据140不同于版本150。在这些示例中的每个中,版本150表示当数据140在给定时间存在时的数据140,并且数据140可以与识别版本150的版本信息相关联。此关联可以由版本控制系统160(例如,在计算设备100上安装的系统160的代理)做出。
在图1的示例中,版本访问信息182的位置信息可以识别版本控制存储器162的远程计算机网络位置,在该远程计算机网络位置,计算设备100可访问数据140的版本150。例如,位置信息可包括统一资源定位符(URL),该统一资源定位符识别经由至少部分实现版本控制系统160的服务器可访问版本控制存储器162中的版本150的位置。在一些示例中,数据140的版本访问信息182可以通过例如安装在计算设备100上的版本控制系统160的代理(例如,可执行指令)被维护在计算设备100上。在这样的示例中,指令121可从版本控制系统160(例如,从版本控制代理)获取版本访问信息182。
如上面所指出的,在本文所描述的示例中,备份系统可完全省略对版本所控制数据进行备份,而改为将备份限制于数据与存储在版本控制系统中的完整版本之间的差别、以及可用于从版本控制系统获得完整版本的数据,这在本文中可以称为数据的“版本认识备份(versionawarebackup)”。在一些示例中,可以向备份系统的用户提供选择用于这种版本认识备份的某些版本所控制数据的选项。在一些示例中,备份系统的用户可以通过指定版本认识备份要依据的位置信息来选择版本认识备份要应用于的某些版本所控制数据。例如,指定的位置信息可以指示可从版本控制系统取回所选择的版本所控制数据的版本的位置。
在这种示例中,指定的(即,选择的)位置信息可以被存储(或者另外被表示)在由备份系统170维护的版本认识备份信息中。在这种示例中,如果与数据相关联的位置信息(例如,识别在版本控制存储器中可访问数据的版本的位置)被表示在版本认识备份信息中,则备份系统170可对数据执行版本认识备份。在一些示例中,给定位置可表示在版本认识备份信息中,该信息包括识别给定位置自身的信息、或者包括识别包含给定位置的更高层位置(例如,父目录或路径)的信息。
作为示例,响应于获取版本访问信息182,指令122可将与数据140相关联的版本访问信息182的位置信息(例如,URL)与在版本认识备份信息中指定的多个位置(例如,URL)进行比较。指令122可基于比较的结果确定(例如,使用如上所述的版本认识备份)要基于由版本控制系统160存储的内容来限制由备份系统170进行的对数据140的备份。例如,如果比较的结果指示版本访问信息182的位置信息被表示在版本认识备份信息中,则指令122可以确定备份系统170要将版本认识备份应用于数据140。
响应于确定备份系统170要将版本认识备份应用于数据140,指令122可获取用于在计算设备100处本地存储的数据140的差别信息190。在本文描述的示例中,用于在计算设备处本地存储的数据的“差别信息”是表示在本地存储的数据与在版本控制存储器中存储的数据的版本之间的差别的信息。在一些示例中,差别信息可表示在本地存储的数据与在版本控制存储器中存储的数据的版本之间的每个差别。在图1的示例中,差别信息190表示在计算设备100处本地存储的数据140与通过版本访问信息182识别并且在版本控制系统160的版本控制存储器162中存储的数据的版本150之间的差别。在一些示例中,指令122可从版本控制系统160(例如,从安装在计算设备100上的的系统160的版本控制代理)获取差别信息190。在其他示例中,指令122可以产生差别信息190。指令122还可将版本访问信息182和差别信息190存储在备份系统170的远程备份存储器172中。在一些示例中,指令122可将版本访问信息182和差别信息190存储在远程备份存储器172中,使得在恢复操作期间,备份系统170要至少根据在版本控制存储器162中存储的数据140的版本150和在远程备份存储器172中存储的差别信息190来恢复数据(例如,恢复到计算设备或任意其他存储介质)。如本文所使用的,“恢复操作”可以是备份系统的用于将至少部分存储在备份系统中的数据恢复至与备份系统的存储器分离的存储介质的功能。
可替代地,如果比较的结果指示版本访问信息182的位置信息未被表示在版本认识备份信息中,则指令122可以确定版本系统170要将非版本认识备份应用于数据140。在本文所描述的示例中,“非版本认识备份”可包括任意版本处理,备份系统可通过该任意版本处理将数据备份在备份系统中,使得可从独立于任意版本控制系统的备份系统恢复数据。在其他示例中,如果比较的结果指示版本访问信息182的位置信息未被表示在版本认识备份信息中,则指令122可确定略过数据140的备份。
在备份系统170对数据140执行版本认识备份的示例中,指令123可根据在版本控制存储器162中存储的数据140的版本150和在远程备份存储器172中存储的差别信息190来将数据140,来将数据恢复到计算设备100。在图1的示例中,恢复的数据145表示由指令123恢复的数据140。恢复的数据145可以被恢复至计算设备100的存储介质。如本文中所使用的,“恢复”数据就是将在对数据执行备份操作时存在的数据提供至目标系统或存储介质。例如,指令123可访问在远程备份存储器172中存储的版本访问信息182,并且可使用版本访问信息182(即,版本和位置信息)来从版本控制存储器162获取版本150。在这样的示例中,指令123还可从远程备份存储器172取回差别信息190,并且(例如,通过将版本150与差别信息190合并)将以差别信息190表示的每个差别结合进版本150中以产生恢复的数据145。
如上面所指出的,指令121-123可以实现备份系统170的备份代理的至少一部分。在一些示例中,备份系统170可以包括在其他计算设备处的其他备份代理。在这样的示例中,在计算设备100之外的计算设备处的其他备份代理可以使用关于指令123的上述过程将数据140恢复到其他计算设备的目标存储介质。类似地,指令123可使用上述过程将安装在计算设备100上的备份代理未备份的数据恢复到计算设备100。
在一些示例中,在计算设备100处本地存储的数据140可包括在一个目录中的多个版本所控制文件。在这种示例中,在版本控制存储器162中存储的数据140的版本150可包括版本所控制文件中每个的各个版本。在一些示例中,差别信息190可包括针对数据140的版本所控制文件中的每个来指定在本地存储(即,数据140中)的版本所控制文件与在版本控制存储器162中存储的版本所控制文件的版本之间的差别(例如,每个差别)的变化文件。
在一些示例中,变化文件可以是补丁文件或表示差别(即,所有差别)中的每个差异的任意其他合适类型的文件。在一些示例中,变化文件可针对版本所控制文件中的每个,来指示相对于版本150中包含的版本所控制文件的各个版本变化的每条线和在每条线中进行的变化。在这样的示例中,变化文件可排除相对于版本150保持不变的数据140的每个文件的每条线。在一些示例中,指令122可通过调用版本控制系统160的合适功能(例如,通过调用在计算设备100上安装的版本控制代理的功能)来获取变化文件,这可以返回变化文件。在其他示例中,差别信息190可包括相对于版本150中包括的文件的版本而变化的数据140的每个文件的副本,同时排除相对于版本150不变的数据140的每个文件。
在一些示例中,指令121-123可以是安装包的部分,该安装包在被安装时可以由处理资源110执行以实现本文所描述的与指令121-123相关的功能。在这样的示例中,存储介质120可以是便携式介质,例如CD、DVD,或闪盘,或者能够从其下载和安装该安装包的服务器所维护的储存器。在其他示例中,指令121-123可以是一个应用、多个应用或已安装在包括处理资源110的计算设备100上的部件的部分。在这样的示例中,存储介质120可包括储存器,例如,硬驱动、固态驱动等。在一些示例中,在本文中关于图1描述的功能可被提供为与在本文中关于图2-4中任意一个所描述的功能结合。
图2是用于根据在版本控制系统中存储的数据并且根据在备份系统中存储的差别信息来恢复数据的示例计算设备200的框图。在图2的示例中,计算设备200包括包含引擎221-229的系统220。在一些示例中,系统220可包括附加的引擎。系统220可实现备份系统270的至少一部分。例如,系统220可实现备份系统270的备份代理的至少一部分。
系统220的引擎中的每个引擎可以是用于实现各个引擎的功能的硬件和程序的任意组合。硬件和程序的这种组合可以以许多不同方式来实现。例如,用于引擎的程序可以是被存储在非暂时性机器可读存储介质上的处理器可执行指令,并且用于引擎的硬件可以包括用于执行那些指令的处理资源。在这样的示例中,机器可读存储介质可以存储在由处理资源执行时实现系统220的指令。存储指令的机器可读存储介质可以集成在包括执行这些指令的处理资源的计算设备上,或者机器可读存储介质可以与计算设备和处理资源分离但是对于计算设备和处理资源访问是可访问的。处理资源可以包括一个处理器、或者在单个计算设备中包括的或在多个计算设备上分布的多个处理器。在其他示例中,这些引擎中的任意引擎的功能可以以电子电路的形式来实现。
在一些示例中,指令可以是安装包的部分,该安装包在被安装时能够被处理资源执行以实现系统220。在这样的示例中,机器可读存储介质可以是便携式介质,例如CD、DVD、闪存,或能够从其下载和安装该安装包的服务器所维护的储存器。在其他示例中,指令可以是一个应用、多个应用、或已安装在包括处理资源的计算设备上的部件的部分。在这样的示例中,机器可读存储介质可包括储存器,例如硬驱动、固态驱动等。
在图2的示例中,系统220与版本控制系统260的版本控制存储器262、版本控制系统261的版本控制存储器265、以及备份系统270的远程备份存储器272通信。系统220可以经由至少一个计算机网络与版本控制存储器262、版本控制存储器265以及备份存储器272中的每一个通信。存储器262、265和272中的每一个可以远离计算设备200,并且各自可以通过至少一个机器可读存储介质来实现。
计算设备200可以包括可由至少一个机器可读存储介质实现的储存器230。在图2的示例中,储存器230可以存储数据240,该数据240可以是包括多个版本所控制文件242的版本所控制目录240。尽管关于其中数据240是版本所控制目录的示例描述了计算设备200,但在其他示例中,数据240可以是任意其他合适类型的数据。在图2的示例中,目录240的版本250相对于计算设备200远程地存储在版本控制系统260的版本控制存储器262中。在图2的示例中,版本控制系统260可以与备份系统270分离。在这样的示例中,版本控制存储器262可以与远程备份存储器272分离。
在图2的示例中,检测引擎221可检测触发器283,以开始备份系统270对计算设备200的备份操作。触发器283可由用于开始备份操作的用户输入命令引起,或者可以由系统220基于预定义的备份进度表来提供。响应于备份系统270的备份操作被触发,识别引擎223可以识别由计算设备220利用的至少一个版本控制系统。例如,引擎223可以识别由计算设备200利用的版本控制系统260。引擎223还可以识别由计算设备200利用的版本控制系统261。在一些示例中,对于这种系统的预定义列表中的每个版本控制系统,引擎223可对计算设备200进行搜索以获得计算设备200利用版本控制系统的证据。一旦找到了针对给定版本控制系统的这种证据,则引擎223可确定计算设备200利用了该给定版本控制系统。例如,引擎223可在注册表项、在给定安装路径处的文件、向计算设备200的操作系统(OS)注册的命令等之中搜索这种证据。
另外,响应于备份操作被触发,引擎221可检测在计算设备处(即,在储存器230中)本地存储的版本所控制目录240。响应于备份操作被触发,并且响应于检测到目录240,更新引擎224可确定版本所控制目录240和版本所控制文件242是否与版本控制系统260的相同版本标识符(即,版本号)相关联。响应于确定版本所控制文件242和版本所控制目录240中的任意一个与版本控制系统260的不同版本标识符相关联(并且,因此版本控制系统160存储了不同的版本),更新引擎224可使版本控制系统260更新版本所控制文件242和版本所控制目录240中的至少一个,使得在更新之后,它们均与版本控制系统260的相同版本标识符相关联。在这样的示例中,版本所控制文件242和目录240可以被更新成与进一步利用被触发的备份操作继续以前的相同版本一致。响应于确定出版本所控制文件242和目录240与相同版本标识符相关联,被触发的备份操作可继续,而无需引擎224执行更新操作。
在图2的示例中,响应于备份操作被触发和检测到目录240,获取引擎225可获取版本信息284和与目录240相关联的位置信息286。版本信息284可以识别被存储在版本控制存储器262中的目录240的版本250,该版本250表示当目录240在给定时间存在时的目录240,并且位置信息286可指定由计算设备200在版本控制存储器262中可访问版本250的位置(例如,计算机网络位置)。因为版本250表示当目录240在给定时间存在时的目录240,所以版本信息284和位置信息286可以通过版本控制系统与在计算设备200处本地存储的目录240相关联。
版本信息284可以是版本或识别在版本控制系统260中存储的版本250的版本号(或其他标识符)。位置信息286可以是URL(或其他合适信息),该URL识别经由至少部分实现版本控制系统260的服务器可访问版本控制存储器262中的版本250的位置。在一些示例中,引擎225可从版本控制系统260的版本控制代理264获取版本信息284和位置信息286。在一些示例中,版本控制代理264可以是在计算设备200上安装的软件(例如,机器可执行指令)。在一些示例中,版本控制系统261的版本控制代理(例如,机器可执行指令)也可安装在计算设备200上。
确定引擎226可基于位置信息286确定基于由版本控制系统260存储的内容来限制由备份系统270对数据240(例如,目录240)的备份。在这种示例中,如上所述,引擎226可确定由备份系统270对目录240的备份将是版本认识备份。在一些示例中,引擎226可将位置信息286与备份系统270的版本认识备份信息281比较。如上面关于图1所述,版本认识备份信息281可包括与各个版本控制信息相关联的位置列表,其中,依赖于版本认识备份来选择位置。作为示例,系统220的接口引擎222可接收可依赖于版本认识备份的版本控制系统的位置的用户选择。在一些示例中,所选择位置可包括版本250的位置,或包括所有版本控制存储器262的更高层(例如,根层)位置。
基于位置信息286与版本认识备份信息281的比较的结果,引擎226可确定与位置信息286相关联的目录240被选择用于由备份系统270进行的版本认识备份(即,如上所述要被限制的版本认识备份)。例如,如果比较的结果指示位置信息286或者包括位置信息286的更高层位置信息(例如,更高层目录或路径)被表示在版本认识备份信息281中,则引擎226可以确定与位置信息286相关联的目录240被选择用于由备份系统270进行的版本认识备份。
响应于这种确定,差别引擎227可获取差别信息290。在一些示例中,引擎227可从版本控制系统260获取差别信息290。例如,引擎227可从版本控制代理264获取差别信息290。差别信息290可表示在储存器230中存储的数据240与在版本控制存储器262中存储的数据240的版本250之间的差别(例如,每个差别)。
如上面所指出的,在图2的示例中,储存器230中所存储的数据240包括在版本所控制目录240中的多个版本所控制文件242。在这样的示例中,在版本控制存储器262中存储的目录240的版本250包括版本所控制文件242的各个版本252。在一些示例中,差别信息290可包括每个版本所控制文件242的副本,其不同于其在版本控制存储器262中存储的版本252中的各个版本。在其他示例中,差别信息290可以包括如上关于图1所描述的变化文件。在这样的示例中的每个示例中,差别信息290可排除相对于在版本控制存储器262中存储的版本250不变的本地存储的数据240的至少一部分。
在图2的示例中,存储引擎228可将版本信息284、位置信息286以及差别信息290存储在备份系统270的远程备份存储器272中。在一些示例中,引擎228可将包括版本信息284和位置信息286的版本访问信息282存储在存储器272中。在一些示例中,版本所控制目录240可包括不在版本控制系统260的版本控制下的文件244(例如,“私人”文件或“查看私人”文件)。在这样的示例中,存储引擎228还可以将私人文件244存储在远程备份存储器272中。
在图2的示例中,在对目录240的版本认识备份之后,系统220可继续检测在计算设备200处本地存储的其他数据,以供备份系统270进行备份。例如,检测引擎221可检测数据246,数据246存储在储存器230中,并且在与系统260和270分离且包括与存储器262和存储器272分离的版本控制存储器265的版本控制系统261的版本控制下。在这样的示例中,数据246的版本256可被存储在版本控制存储器265中。响应于检测数据246,引擎225可获取其他位置信息,该其他位置信息指定在远离计算设备200的版本控制存储器265中可访问版本256的位置,并且引擎226可将该其他位置信息与版本认识备份信息281相比较。
基于比较的结果,引擎226可确定要由备份系统270对数据246执行非版本认识备份。例如,如果比较的结果指示该其他位置信息和包括该其他位置信息的更高层位置信息均未被表示在版本认识备份信息281中,则引擎226可确定要对数据246执行非版本认识备份。响应于这样的结果,存储引擎228可以以任意合适的方式将数据246存储在远程备份存储器272中,使得数据246可从独立于任意版本控制系统的备份系统270恢复。
在一些示例中,系统220的检测引擎221还可继续检测不在任意版本控制系统的版本控制下的非版本所控制数据247。在这样的示例中,存储引擎228可进一步将非版本所控制数据247存储在远程备份存储器272中,使得可从独立于任意版本控制系统的备份系统270恢复非版本所控制数据247。在一些示例中,获取引擎225可通过确定无版本访问信息(例如,版本信息和位置信息)与数据247相关联来确定数据247不在版本控制下。在这样的示例中,获取引擎225可通过确定版本访问信息与数据240和246中的每个相关联来确定数据240和246均在版本控制下。
在图2的示例中,恢复引擎229可至少根据在版本控制存储器262中存储的版本250和在远程备份存储器中存储的差别信息290,将数据240(例如,目录240)恢复到计算设备200。在图2的示例中,恢复的目录245表示如由引擎229恢复的目录240。恢复的目录245可被恢复到计算设备200的存储介质。
作为示例,恢复引擎229可访问在远程备份存储器272中存储的版本信息284和位置信息286,并且基于版本信息284和位置信息286从版本控制存储器262获取目录240的版本250。例如,恢复引擎229可从由位置信息286指示的位置取得由版本信息284识别的版本250。在其他示例中,引擎229可向版本控制系统260(例如,版本控制代理264)提供对版本250的请求,其中该请求指定版本信息284和位置信息286。恢复引擎229可进一步从远程备份存储器272取回差别信息290,并且将差别信息290中表示的每个差别结合(例如,融合等)进计算设备200从版本控制系统260获取的版本250中。恢复引擎229还可取回私人文件244,以进一步与版本250和差别信息290结合(例如,融合)。以这种方式,恢复引擎可产生恢复的目录245。
在一些示例中,恢复引擎229可将数据246和247中的每一个从独立于任意版本控制系统的版本控制存储器272恢复到计算设备200。在一些示例中,恢复引擎229还可将经历由另一计算设备进行的版本认识备份的其他数据恢复到计算设备200。在这样的示例中,引擎229可基于在版本控制存储器(例如,存储器262)中存储的其他数据的版本和与其他数据的版本相关联并且由另一计算设备存储在远程备份存储器272中的其他差别信息,来将其他数据恢复到计算设备200。在这样的示例中,恢复引擎229可如上面关于恢复目录240所述的那样恢复其他数据。在一些示例,在本文中关于图2描述的功能可被提供来与在本文中关于图1和图3-4中的任意一个描述的相关的功能结合。
图3是用于将差别信息存储在备份系统中的示例方法300的流程图。尽管下面描述了由图2的计算设备200执行方法300,但其他合适的计算设备(例如,计算设备100)可用于执行方法300。另外,方法300的实现不限于这些示例。
在方法300的305处,引擎228可获取各自与在计算设备200处(例如,在储存器230中)本地存储的数据240相关联的版本信息284和位置信息286。如上所述,版本信息284可识别数据240的版本250,其中版本250相对于计算设备200被远程地存储在版本控制系统260的版本控制存储器262中的由版本信息286识别的位置处。
在310处,引擎226可以将位置信息286与备份系统270的版本认识备份信息281相比较,备份系统270与版本控制系统260分离。在315处,引擎226可基于位置信息286与版本认识备份信息281的比较结果,来确定与位置信息286相关联的数据240被选择用于由版本系统270进行的版本认识备份。
在320处,响应于确定数据240被选择用于版本认识备份,差别引擎227可从版本控制系统260获取差别信息290。差别信息290可表示本地存储的(例如,在储存器230中)数据240与在版本控制存储器262中存储的数据240的版本250之间的差别(例如,每个差别),并且可以排除相对于在版本控制存储器262中存储的版本250不变的数据240的至少一部分。在325处,引擎228可将版本信息284、位置信息286以及差别信息290存储在备份系统270的远程备份存储器272中。
尽管图3的流程图示出了执行某些功能的特定顺序,但方法300不限于该顺序。例如,在流程图中接连示出的功能可以以不同的顺序执行,可以同时或部分同时执行,或者将它们结合。在一些示例中,在本文中关于图3描述的功能可以被提供来与在本文中关于图1-2和图4中任意一个描述的功能结合。
图4是用于确定与位置信息相关联的数据是否被选择用于由备份系统进行的版本认识备份的示例方法400的流程图。尽管在下面描述了由图2的计算设备200执行方法400,但其他合适的计算设备(例如,计算设备100)可用于执行方法400。另外,方法400的实现不限于这样的示例。
在方法400的405处,系统220的接口引擎222可接收选择,该选择指示与位置信息286相关联的数据(例如,数据240)被选择用于由备份系统270进行的版本认识备份。例如,选择可以是对位置信息286(或包括位置信息286的更高层位置信息)的选择,其可以指示与位置信息286相关联的任何数据被选择用于版本认识备份。
在410处,如上面关于图2所描述的,引擎221可检测触发器283,以开始备份系统270对计算设备200的备份操作。在415处,响应于备份系统270对计算设备的备份操作被触发,引擎221可检测在计算设备200处本地存储的(例如,在储存器230中)数据240,以供备份系统270备份。响应于检测数据240,在420处,引擎225可获取各自与数据240(例如,目录240)相关联的版本信息284和位置信息286。如上所述,版本信息284可识别数据240的版本250,其中版本250相对于计算设备200远程地存储在版本控制系统260的版本控制存储器262中的由位置信息286识别的位置处。
在425处,引擎226可将位置信息286与备份系统270的版本认识备份信息281相比较,备份系统270与版本控制系统260分离。在430处,引擎226可基于位置信息286与版本认识备份信息281的比较结果,来确定与位置信息286相关联的数据240是否被选择用于由备份系统270进行的版本认识备份。
如果确定数据240被选择用于版本认识备份,则方法400可继续至435,在435处,差别引擎227可从版本控制系统260获取差别信息290。差别信息290可表示本地存储的(例如,在储存器230中)数据240与在版本控制存储器262中存储的数据240的版本250之间的差别(例如,每个差别),并且可排除相对于在版本控制存储器262中存储的版本250不变的数据240的至少一部分。在440处,引擎228可将版本信息284、位置信息286以及差别信息290存储在备份系统270的远程备份存储器272中。
在445处,检测引擎221可确定是否存在附加数据用于由备份系统270备份。如果不存在,则方法400可继续至455,在455处,方法400可结束。如果存在,则方法400可返回至420,在420处,引擎225可获取其他位置信息,该其他位置信息指定在另一版本控制系统261的其他版本控制存储器265中可访问(在计算设备200处本地存储的)其他数据246的版本256的位置,其中存储器265远离计算设备200。
方法400然后可继续至425,在425处,引擎226可将其他位置信息与版本认识备份信息281相比较。在430处,引擎226可基于其他位置信息与版本认识备份信息281的比较结果,来确定与其他位置信息相关联的其他数据246是否被选择用于由备份系统270进行的版本认识备份。如果否,则方法400可继续至450。例如,方法400可响应于其他位置信息与版本认识备份信息281的比较结果——其指示备份系统270对其他数据246执行非版本认识备份——继续至450。在450处,引擎228可将其他数据246存储在远程备份存储器272中,使得可从独立于任意版本控制系统的备份系统270恢复其他数据246。方法400然后可返回445。
尽管图4的流程图示出了执行某些功能的顺序,但方法400不限于该顺序。例如,在流程图中接连示出的功能可以以不同的顺序执行,可以同时或部分同时执行,或者将它们结合。在一些示例中,在本文中关于图4描述的功能可以被提供来与在本文中关于图1-3中任意一个描述的功能结合。

Claims (15)

1.一种非暂时性机器可读存储介质,包括用于实现备份系统的至少一部分的指令,所述指令能由计算设备的处理资源执行用于:
从版本控制系统获取与由所述计算设备本地存储的数据相关联的版本访问信息,其中所述版本访问信息能够由所述计算设备使用,来访问相对于所述计算设备远程地存储在所述版本控制系统的版本控制存储器中的数据的版本;
将所述版本访问信息和差别信息存储在所述备份系统的远程备份存储器中,所述差别信息表示在本地存储的所述数据与在所述版本控制存储器中存储的所述数据的版本之间的差别;以及
至少根据在所述版本控制存储器中存储的所述数据的版本和在所述远程备份存储器中存储的所述差别信息,将所述数据恢复到所述计算设备。
2.根据权利要求1所述的存储介质,其中用于获取所述版本访问信息的指令包括用于执行如下操作的指令:
响应于所述备份系统对所述计算设备的备份操作被触发,检测本地存储的所述数据;以及
响应于所述检测,从所述版本控制系统获取与所述数据相关联的所述版本访问信息。
3.根据权利要求2所述的存储介质,其中所述版本访问信息包括:识别在所述版本控制存储器中存储的所述数据的版本的版本信息;以及识别所述版本控制存储器的远程计算机网络位置的位置信息,在所述远程计算机网络位置处,所述计算设备能够访问所述数据的版本。
4.根据权利要求3所述的存储介质,其中用于存储的指令包括用于执行如下操作的指令:
将所述位置信息与在版本认识备份信息中指定的多个位置相比较;
基于所述比较的结果,确定基于由所述版本控制系统存储的内容来限制所述备份系统对所述数据的备份;以及
响应于所述确定,从所述版本控制系统获取所述差别信息。
5.根据权利要求4所述的存储介质,其中:
本地存储的所述数据包括在目录中的多个版本所控制文件,并且在所述版本控制存储器中存储的所述数据的版本包括所述版本所控制文件中的每个版本所控制文件的各个版本;以及
所述差别信息包括变化文件,所述变化文件针对所述版本所控制文件中的每一个指定本地存储的所述版本所控制文件与在所述版本控制存储器中存储的所述版本所控制文件的版本之间的每个差别。
6.一种用于实现备份系统的至少一部分的计算设备,所述计算设备包括:
用于存储数据的储存器,其中所述数据的版本相对于所述计算设备远程地存储在与所述备份系统分离的版本控制系统的版本控制存储器中;
获取引擎,用于响应于所述备份系统的备份操作被触发来获取版本信息和位置信息,所述版本信息识别所述数据的版本,所述位置信息指定所述计算设备能够在所述版本控制存储器中访问所述版本的位置;
存储引擎,用于将所述版本信息、所述位置信息以及差别信息存储在所述备份系统的远程备份存储器中,所述差别信息表示在所述储存器中存储的所述数据与在所述版本控制存储器中存储的所述数据的版本之间的差别,其中所述版本控制存储器和所述备份存储器分离;以及
恢复引擎,用于至少根据在所述版本控制存储器中存储的所述数据的版本和在所述远程备份存储器中存储的所述差别信息,将所述数据恢复到所述计算设备。
7.根据权利要求6所述的计算设备,进一步包括:
识别引擎,用于识别所述计算设备利用的所述版本控制系统;以及
确定引擎,用于基于所述位置信息,确定要基于所述版本控制系统存储的内容来限制所述备份系统对所述数据的备份。
8.根据权利要求7所述的计算设备,进一步包括:
差别引擎,用于响应于所述确定从所述版本控制系统获取所述差别信息;
其中在所述储存器中存储的所述数据包括在版本所控制目录中的多个版本所控制文件,并且在所述版本控制存储器中存储的所述数据的版本包括所述版本所控制文件中的每个版本所控制文件的各个版本;并且
其中所述差别信息包括所述版本所控制文件中的每个版本所控制文件的不同于其在所述版本控制存储器中的各个版本的副本。
9.根据权利要求8所述的计算设备,其中:
所述版本所控制目录进一步包括不在所述版本控制系统的版本控制下的至少一个私人文件;
所述存储引擎进一步用于将所述至少一个私人文件存储在所述远程备份存储器中;以及
所述差别信息排除本地存储的所述数据中的相对于在所述版本控制存储器中存储的所述版本不变的至少一部分。
10.根据权利要求6所述的计算设备,其中在所述储存器中存储的所述数据包括在版本所控制目录中的多个版本所控制文件,所述计算设备进一步包括:
更新引擎,用于响应于所述备份系统的备份操作被触发,来确定所述版本所控制目录和所述版本所控制文件是否与所述版本控制系统的相同版本标识符相关联;
其中响应于确定出所述版本所控制文件和所述版本所控制目录中的任意一个与所述版本控制系统的不同版本标识符相关联,所述更新引擎进一步使所述版本控制系统更新所述版本所控制文件和所述版本所控制目录,使得所述版本所控制文件和所述版本所控制目录与所述版本控制系统的相同版本标识符相关联。
11.根据权利要求6所述的计算设备,进一步包括:
检测引擎,用于检测在所述储存器中存储的非版本所控制数据;
其中所述存储引擎进一步用于将所述非版本所控制数据存储在所述远程备份存储器中,使得所述非版本所控制数据能够从独立于任何版本控制系统的所述备份系统恢复。
12.根据权利要求11所述的计算设备,其中:
所述恢复引擎用于访问在所述远程备份存储器中存储的所述版本信息和所述位置信息,并且基于所述版本信息和所述位置信息从所述版本控制存储器获取所述数据的版本;以及
所述恢复引擎进一步用于从所述远程备份存储器取得所述差别信息,并且将在所述差别信息中表示的每个差别结合进所述计算设备从所述版本控制系统获取的所述数据的版本中。
13.一种方法,包括:
用计算设备获取各自与在所述计算设备处本地存储的数据相关联的版本信息和位置信息,所述版本信息识别相对于所述计算设备远程地存储在版本控制系统的版本控制存储器中的由所述位置信息识别的位置处的所述数据的版本;
将所述位置信息与和所述版本控制系统分离的备份系统的版本认识备份信息相比较;
基于所述位置信息与所述版本认识备份信息的比较结果,来确定与所述位置信息相关联的所述数据被选择用于由所述备份系统进行的版本认识备份;
响应于所述确定,从所述版本控制系统获取差别信息,所述差别信息表示在本地存储的所述数据与在所述版本控制存储器中存储的所述数据的版本之间的差别,并且排除本地存储的所述数据中的相对于在所述版本控制存储器中存储的所述版本不变的至少一部分;以及
用所述计算设备将所述版本信息、所述位置信息以及所述差别信息存储在所述备份系统的远程备份存储器中。
14.根据权利要求13所述的方法,进一步包括:
接收选择,所述选择指示与所述位置相关联的所述数据被选择用于由所述备份系统进行的版本认识备份;以及
响应于所述备份系统对所述计算设备的备份操作被触发,检测在所述计算设备处本地存储的所述数据,其中响应于所述检测来获取与所述数据相关联的所述版本信息和所述位置信息。
15.根据权利要求14所述的方法,进一步包括:
获取其它位置信息,所述其它位置信息指定能够在与所述计算设备远离的其它版本控制存储器中访问在所述计算设备处本地存储的其它数据的版本的位置;
将所述其它位置信息与所述版本认识备份信息相比较;以及
响应于所述其它位置信息与所述版本认识备份信息的比较结果,将所述其它数据存储在所述远程备份存储器中,使得能够从独立于任何版本控制系统的所述备份系统恢复所述其它数据,所述比较结果指示所述备份系统对所述其它数据执行非版本认识备份。
CN201380078664.3A 2013-07-31 2013-07-31 将差别信息存储在备份系统中 Withdrawn CN105453057A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/053037 WO2015016914A1 (en) 2013-07-31 2013-07-31 Storing difference information in a backup system

Publications (1)

Publication Number Publication Date
CN105453057A true CN105453057A (zh) 2016-03-30

Family

ID=52432271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380078664.3A Withdrawn CN105453057A (zh) 2013-07-31 2013-07-31 将差别信息存储在备份系统中

Country Status (4)

Country Link
US (1) US20160162365A1 (zh)
EP (1) EP3028156A1 (zh)
CN (1) CN105453057A (zh)
WO (1) WO2015016914A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106341485A (zh) * 2016-09-27 2017-01-18 珠海市魅族科技有限公司 一种云存储的方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665079B2 (en) * 2014-03-26 2017-05-30 Honeywell International Inc. Controller having a version control system
CN106469101B (zh) * 2015-08-18 2019-06-25 阿里巴巴集团控股有限公司 计算机系统任务备份方法、系统状态恢复方法及其装置
CN109032837A (zh) * 2018-06-15 2018-12-18 华为技术有限公司 数据备份的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030105912A1 (en) * 2001-11-30 2003-06-05 Noren Gregory T. Space efficient backup technique in a storage system
JP4267420B2 (ja) * 2003-10-20 2009-05-27 株式会社日立製作所 ストレージ装置及びバックアップ取得方法
US8224784B2 (en) * 2004-08-13 2012-07-17 Microsoft Corporation Combined computer disaster recovery and migration tool for effective disaster recovery as well as the backup and migration of user- and system-specific information
US8260753B2 (en) * 2004-12-31 2012-09-04 Emc Corporation Backup information management
US7672979B1 (en) * 2005-04-22 2010-03-02 Symantec Operating Corporation Backup and restore techniques using inconsistent state indicators

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106341485A (zh) * 2016-09-27 2017-01-18 珠海市魅族科技有限公司 一种云存储的方法及装置

Also Published As

Publication number Publication date
EP3028156A1 (en) 2016-06-08
US20160162365A1 (en) 2016-06-09
WO2015016914A1 (en) 2015-02-05

Similar Documents

Publication Publication Date Title
EP2840495B1 (en) Container-based processing method and apparatus
US9146812B2 (en) Systems and methods for out-of-band backup and restore of hardware profile information
US8738883B2 (en) Snapshot creation from block lists
US8209290B1 (en) Generic granular restore of application data from a volume image backup
US8676809B1 (en) Method and apparatus for mapping virtual machine incremental images
KR101723763B1 (ko) 프리-히팅된 소프트웨어 설치
US8639973B2 (en) System reset
CN105164657A (zh) 程序数据至非易失性存储器的选择性备份
CN106970856B (zh) 对数据进行备份、恢复及挂载的数据管理系统及方法
US10380356B2 (en) Operating system partition protecting system, protecting device, and terminal
CN102594849A (zh) 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置
CN109582496B (zh) 一致性快照组的创建方法、装置及计算机可读存储介质
US9930112B2 (en) Maintaining system firmware images remotely using a distribute file system protocol
US9823976B2 (en) Optimization to permit block based incremental backup across system reboot or crash
US10055307B2 (en) Workflows for series of snapshots
US10338910B2 (en) Multi-tenant upgrading
CN105453057A (zh) 将差别信息存储在备份系统中
JP2007323657A (ja) 過渡状態情報を格納するための方法、システムおよびコンピュータ・プログラム
WO2020140615A1 (zh) 应用系统的备份恢复方法、装置及计算机可读存储介质
JP5943753B2 (ja) 仮想マシン管理システム、仮想マシン管理方法およびプログラム
CN110674530B (zh) 一种基于用户态的文件访问控制方法、设备和装置
US8918582B2 (en) Simulating EEPROM in virtual distributed switches
JP2007257156A (ja) リストアシステム及びリストア方法
CN109564533B (zh) 一种支持即时恢复进程中执行引导进程的设备和方法
US10296221B1 (en) Systems and methods for improving the efficiency of recording data to tape

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20160330

WW01 Invention patent application withdrawn after publication