# US 10,120,765 B1 · Restore process using incremental inversion

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,765 B1
- Document ID: US10120765B1
- Status: Granted
- Kind: B1
- Application number: 14/578,172
- Filed: 2014-12-19
- Granted: 2018-11-06
- Earliest claimed: 2014-12-19
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC Corporation
- Inventors: Ray David Whitmer
- Web page: https://patentgrep.com/patent/US10120765B1

## CPC

- G06F 11/1458: {Management of the backup or restore process}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1469: {Backup restoration techniques}
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In one example, a method is provided for creating an inversion patch that can be used to locally restore a file to an earlier version of that file. Initially, a datacenter receives information concerning a target file version that resides at the datacenter and that is associated with a file stored locally at a client. The information includes an identification of the file and an identification of the target file version. Next, byte ranges are identified that are affected by changes that took place with respect to the file after the target file version was created. The byte ranges are then combined to form a unified set of byte ranges. Finally, the original content of the byte ranges in the unified set is identified and used to create the inversion patch.

## Claims

### Claim 1

A method for creating an inversion patch, comprising:
receiving, at a datacenter, information concerning a target file version that resides at the datacenter and that is associated with a file stored locally at a client, wherein the information includes an identification of the file and an identification of the target file version;
identifying byte ranges of the locally stored file, wherein the identified byte ranges include bytes of the locally stored file that were changed after the target file version was created;
combining the identified byte ranges to form a unified set of byte ranges;
identifying original content of the changed bytes in the unified set of byte ranges; and
creating an inversion patch that includes the original content.

### Claim 2 (depends on 1)

The method as recited in claim 1, wherein identification of the byte ranges is performed by reviewing respective tables of contents of each incremental backup of the file.

### Claim 3 (depends on 1)

The method as recited in claim 1, wherein one of the byte ranges includes local changes that have been made to the file and which have not been stored at the datacenter.

### Claim 4 (depends on 3)

The method as recited in claim 3, wherein the local changes and associated byte range are identified in the information received by the datacenter concerning the target file version.

### Claim 5 (depends on 1)

The method as recited in claim 1, wherein the original content resides in one or both of an incremental backup that was stored prior to creation of the target file version, and a baseline dataset associated with the file.

### Claim 6 (depends on 1)

The method as recited in claim 1, wherein the file in connection with which the inversion patch is created is one of a database, a mailbox, or a virtual machine disk file.

### Claim 7 (depends on 1)

The method as recited in claim 1, further comprising transmitting the inversion patch to a client from which the target file version information was received.

### Claim 8 (depends on 1)

The method as recited in claim 1, wherein the unified set of byte ranges includes all the changes that occurred in the local copy of the file after the creation of the target file version.

### Claim 9 (depends on 1)

The method as recited in claim 1, wherein identification of the byte ranges is performed without examination of the bytes in the byte ranges.

### Claim 10 (depends on 1)

The method as recited in claim 1, wherein identification of the byte ranges is performed by a local operating system.

### Claim 11 (depends on 1)

The method as recited in claim 1, wherein identification of the original content is performed by searching, in reverse chronological order, each incremental backup of the file that was created prior to creation of the target file version.

### Claim 12 (depends on 11)

The method as recited in claim 11, further comprising searching a baseline dataset after the incremental backups have been searched.

### Claim 13

A non-transitory storage medium having stored therein computer-executable instructions which, when executed by one or more hardware processors, perform the following operations:
receiving, at a datacenter, information concerning a target file version that resides at the datacenter and that is associated with a file stored locally at a client, wherein the information includes an identification of the file and an identification of the target file version;
identifying byte ranges of the locally stored file, wherein the identified byte ranges include bytes of the locally stored file that were changed after the target file version was created;
combining the identified byte ranges to form a unified set of byte ranges;
identifying original content of the changed bytes in the unified set of byte ranges; and
creating an inversion patch that includes the original content.

### Claim 14 (depends on 13)

A physical device, wherein the physical device comprises:
one or more hardware processors; and
the non-transitory storage medium of claim 13.
