IP Library Granted Patent US 8,612,707
Granted Patent B2
US 8,612,707 · App. 13/767,585 · Granted Dec 17, 2013

Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,612,707
App. No.
13/767,585
Granted
Dec 17, 2013
Kind
B2
Abstract

A portable data protection system is described for protecting, transferring or copying data using continuous data protection (CDP) over intermittent or occasional connections between a computer system or mobile device containing the data to be protected, transferred or copied, called a data source, and one or more computer systems that receive the data, called a data target. CDP can be broken down logically into two phases: 1) detecting changes to data on a data source and 2) replicating the changes to a data target. The portable data protection system uses a method that performs the first phase continuously or near continuously on the data source, and the second phase when a connection is available between the data source and the data target.

Claims (88)

1. A system for replicating changes to data stored on a portable device to an external data storage device, the system comprising:

at least one processor; and,

at least one data storage device coupled to the processor;

wherein the processor is configured to—

in response to an indication of a detected change to data stored in a data store of the portable device, store information in a data structure that indicates the detected change to the data,

wherein the data store has blocks having sizes and the data structure is a bitmap,

wherein data elements of the bitmap are associated with respective blocks of data stored in the data store, and

wherein a size of each block is determined based on an existing threshold; and

receive a connection indication that the portable device is communicatively coupled to the external data storage device;

in response to the connection indication, access the information stored in the data structure; and

copy the change to the data indicated by the information to the external data storage device.

2. The system of claim 1 , further comprising an intermediate version cache component, wherein the change tracking component is further configured to, when the portable device is not communicatively coupled to the external data storage device:

determine the data stored in the data store that is to be changed prior to the detected change to the data; and

provide the data that is to be changed prior to the change to the intermediate version cache component,

wherein the intermediate version cache component is configured to:

receive the data that is to be changed prior to the change from the change tracking component; and

store the data that is to be changed prior to the change.

3. The system of claim 1 wherein the portable device is selected from the group consisting of a laptop, a cell phone, a pocket computer, a tablet computer, a portable media player, and a handheld game device.

4. The system of claim 1 wherein a portion of the data store is available for data storage, and wherein the change tracking component is further configured to:

access the data store to determine the portion available for data storage; and

when the portion available for data storage exceeds a threshold amount, store additional information associated with the detected change to the data, wherein the additional information includes at least one of:

the data to which the change was detected;

blocks associated with the change to the data;

an offset within the data to which the change was detected indicating the commencement of the change;

a length of the change; and

metadata associated with the data to which the change was detected.

5. At least one non-transitory computer-readable storage medium encoded with instructions for tracking modifications made to data objects stored on a portable device that includes a file system and a continuous data protection component configured to monitor modifications to the file system, the method comprising:

in response to determining that the portable device is not connected to an external data storage location, at the portable device:

determining information associated with a modification made to a data object stored on the portable device,

further comprising:

monitoring a modification to a data object on the file system, wherein the monitoring is performed by the continuous data protection component; and

storing the associated information in a data structure,

further comprising:

storing an indication of the modification monitored by the continuous data protection component.

6. The at least one computer-readable storage medium of claim 5 , further comprising, in response to determining that the portable device is connected to the external data storage location:

retrieving the associated information from the data structure;

determining the modification made to the data object based on the associated information; and

copying the modification to the external data storage location.

7. The at least one computer-readable storage medium of claim 5 , further comprising, in response to determining that the portable device is connected to the external data storage location:

receiving an indication of a modification made to a data object stored on the portable device; and

copying the modification to the external data storage location.

8. The at least one computer-readable storage medium of claim 5 wherein the portable device includes a storage device having blocks, and further wherein determining information associated with the modification includes identifying an offset and a number of blocks changed from the offset.

9. The at least one computer-readable storage medium of claim 5 , further comprising, in response to determining that the portable device is not connected to the external data storage location, at the portable device, storing an indication of the state of the data object prior to the modification to the data object.

10. The at least one computer-readable storage medium of claim 5 wherein the portable device includes a storage device having an available amount of storage, and further wherein storing the associated information includes:

determining the available amount of storage on the storage device of the portable device; and

when the available amount of storage exceeds a threshold amount:

determining additional information associated with the modification made to the data object, wherein the additional information includes at least one of:

the data object to which the modification was made;

an offset within the data object to which the modification was made indicating the commencement of the modification;

a length of the modification; and

metadata associated with the data object to which the modification was made; and

storing the additional information.

11. The at least one computer-readable storage medium of claim 5 , further comprising determining when the portable device is connected to the external data storage location by:

sending a message from the portable device to the external data storage location; and

receiving a response to the message from the external data storage location at the portable device.

12. The at least one computer-readable storage medium of claim 5 , further comprising, in response to determining that the portable device is not connected to the external data storage location, at the portable device:

storing the associated information in a cache prior to storing the associated information in the data structure; and

upon receiving an indication of a second modification made to a second data object:

flushing the cache to store the associated information in the data structure;

determining second information associated with the second modification made to the second data object; and

storing the second associated information in the cache.

13. At least one non-transitory computer-readable storage medium encoded with instructions for controlling a computer system to method of tracking a requested modification to a file on a file system of a computing device, the method comprising:

receiving an indication of a requested modification to a file on a file system of a computing device,

wherein the indication is received by a filter driver configured to intercept requested modifications before they are received by the file system of the computing device;

determining an offset within the file corresponding to the requested modification to the file and a size of the requested modification to the file;

storing the determined offset within the file and the determined size; and

relaying the first requested modification to the file to the file system.

14. The at least one computer-readable storage of claim 13 , further comprising:

receiving a second indication of a second requested modification to the file;

determining a second offset within the file corresponding to the second requested modification to the file and a second size of the requested modification to the file;

storing the determined second offset within the file and the determined second size; and

relaying the second requested modification to the file to the file system.

15. The at least one computer-readable storage of claim 13 , further comprising:

receiving metadata associated with the file, wherein the metadata includes at least one of a time at which the modification was requested, an application or process that requested the modification, and security information associated with the application or process that requested the modification; and

storing the received associated metadata.

16. A computer-implemented method for tracking modifications made to data objects stored on a portable device, the method comprising:

determining when the portable device is connected to an external data storage location,

wherein the portable device stores data objects, and

wherein the external data storage location is configured to store copies of data objects from the portable device; and

when it is determined that the portable device is not connected to the external data storage location, at the portable device:

receiving an indication of a modification made to a data object stored on the portable device;

determining information associated with the modification made to the data object; and

storing the associated information in a data structure,

wherein the data structure is configured to enable retrieval of the associated information from the data structure and to enable determination of the modification made to the data object based on the associated information;

wherein the portable device includes a storage device having blocks, the data object is a file, the data structure is bitmap,

wherein receiving an indication of a modification includes receiving an indication of a modification made to a portion of a file;

wherein determining information associated with the modification includes determining a set of blocks on the storage device corresponding to the portion of the file to which the modification was made; and

wherein storing the associated information includes changing bits corresponding to the determined set of blocks in the bitmap.

Assignments (5)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2021
From: BANK OF AMERICA, N.A.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 054913/0905 →
SECURITY INTEREST Recorded Jul 2, 2014
From: COMMVAULT SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033266/0678 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2013
From: PRAHLAD, ANAND; AGRAWAL, VIJAY H.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 030800/0596 →