IP Library Granted Patent US 12,229,015
Granted Patent B2
US 12,229,015 · App. 18/491,972 · Granted Feb 18, 2025

Computerized methods and apparatus for data cloning

Inventors: Yeganjaiah Gottemukkula (Lexington, MA); Madhav Mutalik (Southborough, MA); Siddhartha Karnik (Lexington, MA); Tracy Melbourne Taylor (Concord, MA)
Assignee: Google LLC
G06F11/1451G06F11/1435G06F11/1446G06F11/1461G06F11/1464G06F16/1827H04L67/10G06F11/1453G06F11/1456G06F2201/84H04L67/1097
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 12,229,015
App. No.
18/491,972
Granted
Feb 18, 2025
Kind
B2
Abstract

Methods for creating a live copy of a data object from a production system for use by third party applications include receiving at least one request for a copy of production data from an application; creating a live backup copy; creating a flash copy of the live backup copy, and a flash copy bitmap; creating a modified version of the live backup copy by changing a subset of data in the live backup copy; recording the changed subset of data using the flash copy bitmap; mounting, the modified version of the live backup copy to the application; and transforming the modified version of the live backup copy back to the live backup copy when unmounting the modified version of the live backup copy of the production data from the application by applying changes associated with the flash copy bitmap to the live backup copy.

Claims (40)

1. A computer-implemented method executed by data processing hardware that causes the data processing hardware to perform operations comprising:

obtaining a first backup image of an application, the first backup image not in an executable format;

creating, based on the first backup image, a live clone of the application, the live clone:

comprising an exact copy of the first backup image; and

executable without modification;

obtaining a second backup image of the application, the second backup image comprising a bitmap indicating at least one data change between the first backup image and the second backup image, the second backup image not in an executable format;

in response to obtaining the second backup image of the application, refreshing, based on the bitmap, the live clone to include the at least one data change between the first backup image and the second backup image such that the live clone comprises an exact copy of the second backup image; and

executing the refreshed live clone.

2. The method of claim 1 , wherein the operations further comprise scrubbing the refreshed live clone by removing sensitive information from the refreshed live clone prior to execution.

3. The method of claim 1 , wherein the operations further comprise prep-mounting the refreshed live clone.

4. The method of claim 3 , wherein executing the refreshed live clone comprises, in response to prep-mounting the refreshed live clone, mounting the refreshed live clone to a third party application.

5. The method of claim 4 , wherein the operations further comprise, after executing the refreshed live clone, unmounting the refreshed live clone from the third party application.

6. The method of claim 5 , wherein the operations further comprise, in response to unmounting the refreshed live clone, discarding the refreshed live clone.

7. The method of claim 1 , wherein the first backup image is from a first point in time and the second backup image is from a second point in time different from the first point in time.

8. The method of claim 1 , wherein the operations further comprise:

obtaining a third backup image of the application, the third backup image comprising a new bitmap indicating at least one data change between the second backup image and the third backup image, the third backup image not in an executable format; and

in response to obtaining the third backup image of the application, refreshing, based on the bitmap, the live clone to include the at least one data change between the second backup image and the third backup image such that the live clone comprises an exact copy of the third backup image.

9. The method of claim 8 , wherein the operations further comprise, while refreshing the live clone to include the at least one data change between the second backup image and the third backup image, receiving a refresh cancel request.

10. The method of claim 9 , wherein the operations further comprise, in response to receiving the refresh cancel request, canceling the refresh of the live clone to include the at least one data change between the second backup image and the third backup image.

11. A system comprising:

data processing hardware; and

memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:

obtaining a first backup image of an application, the first backup image not in an executable format;

creating, based on the first backup image, a live clone of the application, the live clone:

comprising an exact copy of the first backup image; and

executable without modification;

obtaining a second backup image of the application, the second backup image comprising a bitmap indicating at least one data change between the first backup image and the second backup image, the second backup image not in an executable format;

in response to obtaining the second backup image of the application, refreshing, based on the bitmap, the live clone to include the at least one data change between the first backup image and the second backup image such that the live clone comprises an exact copy of the second backup image; and

executing the refreshed live clone.

12. The system of claim 11 , wherein the operations further comprise scrubbing the refreshed live clone by removing sensitive information from the refreshed live clone prior to execution.

13. The system of claim 11 , wherein the operations further comprise prep-mounting the refreshed live clone.

14. The system of claim 13 , wherein executing the refreshed live clone comprises, in response to prep-mounting the refreshed live clone, mounting the refreshed live clone to a third party application.

15. The system of claim 14 , wherein the operations further comprise, after executing the refreshed live clone, unmounting the refreshed live clone from the third party application.

16. The system of claim 15 , wherein the operations further comprise, in response to unmounting the refreshed live clone, discarding the refreshed live clone.

17. The system of claim 11 , wherein the first backup image is from a first point in time and the second backup image is from a second point in time different from the first point in time.

18. The system of claim 11 , wherein the operations further comprise:

obtaining a third backup image of the application, the third backup image comprising a new bitmap indicating at least one data change between the second backup image and the third backup image, the third backup image not in an executable format; and

in response to obtaining the third backup image of the application, refreshing, based on the bitmap, the live clone to include the at least one data change between the second backup image and the third backup image such that the live clone comprises an exact copy of the third backup image.

19. The system of claim 18 , wherein the operations further comprise, while refreshing the live clone to include the at least one data change between the second backup image and the third backup image, receiving a refresh cancel request.

20. The system of claim 19 , wherein the operations further comprise, in response to receiving the refresh cancel request, canceling the refresh of the live clone to include the at least one data change between the second backup image and the third backup image.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2023
From: GOTTEMUKKULA, YEGANJAIAH; MUTALIK, MADHAV; KARNIK, SIDDHARTHA; TAYLOR, TRACY
To: ACTIFIO, INC.
Reel/Frame 065307/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2023
From: ACTIFIO, INC.
To: GOOGLE LLC
Reel/Frame 065307/0417 →
Continuity (8)
Continuation 17067481 · Oct 9, 2020
Continuation 14546747 · Nov 18, 2014
Provisional Application 62063162 · Oct 13, 2014
Provisional Application 61912232 · Dec 5, 2013
Provisional Application 61905346 · Nov 18, 2013
Provisional Application 61905342 · Nov 18, 2013
Provisional Application 61905360 · Nov 18, 2013
Related Publication 20240126656A1 · Apr 18, 2024
References Cited (4)
US 20100049930A1 · Pershin · 2010 [cited by examiner]
US 20120124306A1 · Abercrombie · 2012 [cited by examiner]
US 20130339303A1 · Potter et al. · 2013 [cited by applicant]
USPTO. Office Action relating to U.S. Appl. No. 17/067,481, dated Mar. 16, 2023. [cited by applicant]