IP Library Granted Patent US 12,316,718
Granted Patent B2
US 12,316,718 · App. 18/736,975 · Granted May 27, 2025

Data storage system with rapid restore capability

Inventors: Ramachandra Reddy Ankireddypalle (Hyderabad, IN); Manoj Kumar Vijayan (Marlboro, NJ); Pratima Bapusaheb Kudale (San Jose, CA); Anuradha Talur (Sunnyvale, CA); Manivannan Subramaniam (Edison, NJ)
Assignee: Commvault Systems, Inc.
H04L67/5683H04L67/565H04L67/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,316,718
App. No.
18/736,975
Granted
May 27, 2025
Kind
B2
Abstract

An improved information management system that implements a staging area or cache to temporarily store primary data in a native format before the primary data is converted into secondary copies in a secondary format is described herein. For example, the improved information management system can include various media agents that each include one or more high speed drives. When a client computing device provides primary data for conversion into secondary copies, the primary data can initially be stored in the native format in the high speed drive(s). If the client computing device then submits a request for the primary data, the media agent can simply retrieve the primary data from the high speed drive(s) and transmit the primary data to the client computing device. Because the primary data is already in the native format, no conversion operations are performed by the media agent, thereby reducing the restore delay.

Claims (50)

1. A computer-implemented method performed by a system that comprises: a first computing device in communication with a client computing device that is configured to execute an application that generates a first data file in a native format, wherein the native format is associated with the application;

wherein the system further comprises a first drive that comprises one or more first data storage devices; and

wherein the system further comprises a second drive that comprises one or more second data storage devices, wherein the first drive is configured to read the first data file from one or more of the one or more first data storage devices faster than the second drive is configured to read the first data file from one or more of the one or more second data storage devices; and

wherein the computer-implemented method comprises:

receiving, from the client computing device, the first data file in the native format;

storing the first data file in the native format in the first drive;

after a first amount of time following the storing of the first data file in the first drive, moving the first data file in the native format from the first drive to the second drive;

after a second amount of time that is longer than the first amount of time:

(a) converting the first data file from the native format into one or more secondary copies that are in a secondary copy format, wherein the secondary copy format is distinct from the native format, and

(b) storing the one or more secondary copies, in the secondary copy format, in the second drive;

receiving a request for at least part of the first data file; and

responsive to the request, depending on a timing of the request compared to the first amount of time and the second amount of time, serve at least part of the first data file from one of: the first drive and the second drive.

2. The computer-implemented method of claim 1 further comprising:

after a third amount of time that is longer than the second amount of time, storing the one or more secondary copies, in the secondary copy format, at a secondary storage device that is distinct from and in communication with the first computing device; and

responsive to the request received after the one or more secondary copies are stored at the secondary storage device, (A) restoring the one or more secondary copies from the secondary copy format into the first data file in the native format at one of: the first drive and the second drive, and (B) transmitting at least part of the first data file as restored in the native format.

3. The computer-implemented method of claim 1 , further comprising:

for storage at one or more of the first drive and the second drive, dividing the first data file received from the client computing device into a plurality of file extents that each have a smaller size than the first data file; and

responsive to the request, serving a first file extent among the plurality of file extents.

4. The computer-implemented method of claim 1 , further comprising: based on the request being received before the first data file has been moved to the second drive, transmitting at least part of the first data file in the native format from the first drive.

5. The computer-implemented method of claim 1 , further comprising: based on the request being received after the first data file has been moved to the second drive and before the first data file has been converted into the one or more secondary copies, transmitting at least part of the first data file in the native format from the second drive.

6. The computer-implemented method of claim 1 , further comprising: based on the request being received after the first data file has been converted into the one or more secondary copies stored at the second drive, (A) restoring the one or more secondary copies from the secondary copy format into the first data file in the native format, and (B) transmitting at least part of the first data file in the native format from the second drive.

7. The computer-implemented method of claim 1 , wherein a storage manager that executes on a third computing device is configured to manage one or more storage policies that define the first amount of time and the second amount of time, wherein the third computing device is distinct from one or more of: the client computing device and the first computing device, and wherein the third computing device comprises one or more hardware processors.

8. The computer-implemented method of claim 7 , wherein the one or more storage policies further define when to store the one or more secondary copies, in the secondary copy format, at a secondary storage device that is distinct from and in communication with the first computing device.

9. The computer-implemented method of claim 1 , wherein the first computing device is implemented as a cloud computing resource in a cloud computing environment.

10. The computer-implemented method of claim 2 , wherein one or more of the first drive, the second drive, and the secondary storage device is implemented as a cloud storage resource in a cloud storage environment.

11. A system comprising:

a first computing device in communication with a client computing device that comprises one or more hardware processors, wherein the client computing device is configured to execute an application that generates a first data file in a native format, wherein the native format is associated with the application;

a first drive that comprises one or more first data storage devices; and

a second drive that comprises one or more second data storage devices, wherein the first drive is configured to read the first data file from one or more of the one or more first data storage devices faster than the second drive is configured to read the first data file from one or more of the one or more second data storage devices; and

wherein the first computing device comprises one or more hardware processors, and further comprises the first drive and the second drive, and wherein the first computing device is configured with computer-executable instructions that, when executed, cause the first computing device to:

receive, from the client computing device, the first data file in the native format,

store the first data file in the native format in the first drive,

after a first amount of time, take a file-level snapshot of primary data that is stored in the first drive,

based on the file-level snapshot, determine that the first data file has changed since a preceding snapshot of primary data in the first drive,

move the first data file in the native format from the first drive to the second drive,

replace the first data file on the first drive with a stub that points to the first data file on the second drive, and

after a second amount of time longer than the first amount of time, (a) convert the first data file from the native format into one or more secondary copies that are in a secondary copy format, wherein the secondary copy format is distinct from the native format, and (b) store the one or more secondary copies, in the secondary copy format, in the second drive, and

responsive to a request for at least part of the first data file, depending on a timing of the request compared to the first amount of time and the second amount of time, serve at least part of the first data file from one of: the first drive and the second drive.

12. The system of claim 11 , wherein the computer-executable instructions, when executed, further cause the first computing device to: after a third amount of time longer than the second amount of time, store the one or more secondary copies, in the secondary copy format, at a secondary storage device that is distinct from and in communication with the first computing device; and

wherein, responsive to the request received after the one or more secondary copies are stored at the secondary storage device, (A) restore the one or more secondary copies from the secondary copy format into the first data file in the native format at one of: the first drive and the second drive, and (B) transmit at least part of the first data file as restored in the native format.

13. The system of claim 12 , wherein the computer-executable instructions, when executed, further cause the first computing device to: update the stub to point to the one or more secondary copies at the secondary storage device.

14. The system of claim 11 , wherein the computer-executable instructions, when executed, further cause the first computing device to:

for storage at one or more of the first drive and the second drive, divide the first data file received from the client computing device into a plurality of file extents that each have a smaller size than the first data file, and

responsive to the request, serve a first file extent among the plurality of file extents.

15. The system of claim 11 , wherein the computer-executable instructions, when executed, further cause the first computing device to: based on the request being received before the first data file has been moved to the second drive, transmit at least part of the first data file in the native format from the first drive.

16. The system of claim 11 , wherein the computer-executable instructions, when executed, further cause the first computing device to: based on the request being received after the first data file has been moved to the second drive and before the first data file has been converted into the one or more secondary copies, transmit at least part of the first data file in the native format from the second drive.

17. The system of claim 11 , wherein the computer-executable instructions, when executed, further cause the first computing device to: based on the request being received after the first data file has been converted into the one or more secondary copies stored at the second drive, (A) restore the one or more secondary copies from the secondary copy format into the first data file in the native format, and (B) transmit at least part of the first data file in the native format from the second drive.

18. The system of claim 11 , wherein the first drive is configured in the system as a faster storage tier than a first portion of the second drive that stores the first data file in the native format, and wherein a second portion of the second drive that stores the one or more secondary copies in the secondary copy format is configured in the system as a slower storage tier than the first portion of the second drive.

19. The system of claim 11 , wherein a storage manager that executes on a third computing device is configured to manage one or more storage policies that define the first amount of time and the second amount of time, wherein the third computing device is distinct from one or more of: the client computing device and the first computing device, and wherein the third computing device comprises one or more hardware processors.

20. The system of claim 11 , wherein the first drive is configured to execute a first file system and wherein the second drive is configured to execute a second file system, which is distinct from, and of a different type than, the first file system.

Assignments (2)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2024
From: ANKIREDDYPALLE, RAMACHANDRA REDDY; VIJAYAN, MANOJ KUMAR; KUDALE, PRATIMA BAPUSAHEB; TALUR, ANURADHA; SUBRAMANIAM, MANIVANNAN
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 067773/0101 →
Continuity (6)
Continuation 18133450 · Apr 11, 2023
Continuation 17498212 · Oct 11, 2021
Continuation 17356981 · Jun 24, 2021
Continuation 17202078 · Mar 15, 2021
Continuation 16525286 · Jul 29, 2019
Related Publication 20240333815A1 · Oct 3, 2024
References Cited (124)
US 4084231A · Capozzi et al. · 1978 [cited by applicant]
US 4267568A · Dechant et al. · 1981 [cited by applicant]
US 4283787A · Chambers · 1981 [cited by applicant]
US 4417321A · Chang et al. · 1983 [cited by applicant]
US 4641274A · Swank · 1987 [cited by applicant]
US 4654819A · Stiffler et al. · 1987 [cited by applicant]
US 4686620A · Ng · 1987 [cited by applicant]
US 4912637A · Sheedy et al. · 1990 [cited by applicant]
US 4995035A · Cole · 1991 [cited by applicant]
US 5005122A · Griffin · 1991 [cited by applicant]
US 5093912A · Dong et al. · 1992 [cited by applicant]
US 5133065A · Cheffetz et al. · 1992 [cited by applicant]
US 5193154A · Kitajima et al. · 1993 [cited by applicant]
US 5212772A · Masters · 1993 [cited by applicant]
US 5226157A · Nakano et al. · 1993 [cited by applicant]
US 5239647A · Anglin et al. · 1993 [cited by applicant]
US 5241668A · Eastridge et al. · 1993 [cited by applicant]
US 5241670A · Eastridge et al. · 1993 [cited by applicant]
US 5276860A · Fortier et al. · 1994 [cited by applicant]
US 5276867A · Kenley et al. · 1994 [cited by applicant]
US 5287500A · Stoppani, Jr. · 1994 [cited by applicant]
US 5301286A · Rajani · 1994 [cited by applicant]
US 5321816A · Rogan et al. · 1994 [cited by applicant]
US 5347653A · Flynn et al. · 1994 [cited by applicant]
US 5410700A · Fecteau et al. · 1995 [cited by applicant]
US 5420996A · Aoyagi · 1995 [cited by applicant]
US 5454099A · Myers et al. · 1995 [cited by applicant]
US 5559991A · Kanfi · 1996 [cited by applicant]
US 5642496A · Kanfi · 1997 [cited by applicant]
US 6418478B1 · Ignatius et al. · 2002 [cited by applicant]
US 6542972B2 · Ignatius et al. · 2003 [cited by applicant]
US 6658436B2 · Oshinsky et al. · 2003 [cited by applicant]
US 6721767B2 · DeMeno et al. · 2004 [cited by applicant]
US 6760723B2 · Oshinsky et al. · 2004 [cited by applicant]
US 7003641B2 · Prahlad · 2006 [cited by applicant]
US 7035880B1 · Crescenti · 2006 [cited by applicant]
US 7107298B2 · Prahlad · 2006 [cited by applicant]
US 7130970B2 · Devassy · 2006 [cited by applicant]
US 7162496B2 · Amarendran et al. · 2007 [cited by applicant]
US 7174433B2 · Kottomtharayil et al. · 2007 [cited by applicant]
US 7246207B2 · Kottomtharayil · 2007 [cited by applicant]
US 7315923B2 · Retnamma · 2008 [cited by applicant]
US 7343453B2 · Prahlad · 2008 [cited by applicant]
US 7389311B1 · Crescenti et al. · 2008 [cited by applicant]
US 7395282B1 · Crescenti · 2008 [cited by applicant]
US 7440982B2 · Lu · 2008 [cited by applicant]
US 7454569B2 · Kavuri · 2008 [cited by applicant]
US 7490207B2 · Amarendran et al. · 2009 [cited by applicant]
US 7500053B1 · Kavuri · 2009 [cited by applicant]
US 7529782B2 · Prahlad · 2009 [cited by applicant]
US 7536291B1 · Vijayan Retnamma et al. · 2009 [cited by applicant]
US 7543125B2 · Gokhale · 2009 [cited by applicant]
US 7546324B2 · Prahlad et al. · 2009 [cited by applicant]
US 7603386B2 · Amarendran et al. · 2009 [cited by applicant]
US 7606844B2 · Kottomtharayil · 2009 [cited by applicant]
US 7613752B2 · Prahlad · 2009 [cited by applicant]
US 7617253B2 · Prahlad et al. · 2009 [cited by applicant]
US 7617262B2 · Prahlad · 2009 [cited by applicant]
US 7620710B2 · Kottomtharayil · 2009 [cited by applicant]
US 7636743B2 · Erofeev · 2009 [cited by applicant]
US 7651593B2 · Prahlad · 2010 [cited by applicant]
US 7657550B2 · Prahlad · 2010 [cited by applicant]
US 7660807B2 · Prahlad · 2010 [cited by applicant]
US 7661028B2 · Erofeev · 2010 [cited by applicant]
US 7734669B2 · Kottomtharayil · 2010 [cited by applicant]
US 7747579B2 · Prahlad · 2010 [cited by applicant]
US 7801864B2 · Prahlad · 2010 [cited by applicant]
US 7809914B2 · Kottomtharayil · 2010 [cited by applicant]
US 8170995B2 · Prahlad · 2012 [cited by applicant]
US 8229954B2 · Kottomtharayil · 2012 [cited by applicant]
US 8285681B2 · Prahlad · 2012 [cited by applicant]
US 8307177B2 · Prahlad · 2012 [cited by applicant]
US 8364652B2 · Vijayan · 2013 [cited by applicant]
US 8370542B2 · Lu et al. · 2013 [cited by applicant]
US 8504515B2 · Prahlad et al. · 2013 [cited by applicant]
US 8578120B2 · Attarde · 2013 [cited by applicant]
US 8954446B2 · Vijayan Retnamma et al. · 2015 [cited by applicant]
US 9020900B2 · Vijayan Retnamma et al. · 2015 [cited by applicant]
US 9098495B2 · Gokhale · 2015 [cited by applicant]
US 9239687B2 · Vijayan · 2016 [cited by applicant]
US 9633033B2 · Vijayan · 2017 [cited by applicant]
US 9639274B2 · Maranna · 2017 [cited by applicant]
US 10416919B1 · Cai et al. · 2019 [cited by applicant]
US 11221983B1 · Chakravarthy · 2022 [cited by examiner]
US 20030154220A1 · Cannon · 2003 [cited by examiner]
US 20060212481A1 · Stacey et al. · 2006 [cited by applicant]
US 20060224846A1 · Amarendran · 2006 [cited by applicant]
US 20090319534A1 · Gokhale · 2009 [cited by applicant]
US 20100169594A1 · Tsaur · 2010 [cited by examiner]
US 20110035409A1 · Shimada · 2011 [cited by examiner]
US 20110145196A1 · Bender · 2011 [cited by examiner]
US 20120023233A1 · Okamoto et al. · 2012 [cited by applicant]
US 20120150818A1 · Vijayan Retnamma et al. · 2012 [cited by applicant]
US 20140059306A1 · Bender et al. · 2014 [cited by applicant]
US 20140108351A1 · Nallathambi · 2014 [cited by examiner]
US 20140201150A1 · Kumarasamy · 2014 [cited by applicant]
US 20160006829A1 · Ishii et al. · 2016 [cited by applicant]
US 20160210202A1 · Sinha · 2016 [cited by applicant]
US 20160350391A1 · Vijayan et al. · 2016 [cited by applicant]
US 20170168903A1 · Dornemann et al. · 2017 [cited by applicant]
US 20170185488A1 · Kumarasamy et al. · 2017 [cited by applicant]
US 20170193003A1 · Vijayan et al. · 2017 [cited by applicant]
US 20170235647A1 · Kilaru et al. · 2017 [cited by applicant]
US 20170242871A1 · Kilaru et al. · 2017 [cited by applicant]
US 20190310920A1 · Rybczyk · 2019 [cited by examiner]
US 20210037112A1 · Ankireddypalle et al. · 2021 [cited by applicant]
US 20220210243A1 · Ankireddypalle et al. · 2022 [cited by applicant]
EP 0259912 · 1988 [cited by applicant]
EP 0405926 · 1991 [cited by applicant]
EP 0467546 · 1992 [cited by applicant]
EP 0541281 · 1993 [cited by applicant]
EP 0774715 · 1997 [cited by applicant]
EP 0809184 · 1997 [cited by applicant]
EP 0899662 · 1999 [cited by applicant]
EP 0981090 · 2000 [cited by applicant]
WO 9513580 · 1995 [cited by applicant]
WO 9912098 · 1999 [cited by applicant]
WO 2006052872 · 2006 [cited by applicant]
Arneson, “Mass Storage Archiving in Network Environments,” Digest of Papers, Ninth IEEE Symposium on Mass Storage Systems, Oct. 31, 1988Nov. 3, 1988, pp. 45-50, Monterey, CA. [cited by applicant]
Arneson, David A., “Development of Omniserver,” Control Data Corporation, Tenth IEEE Symposium on Mass Storage Systems, May 1990, ‘Crisis in Mass Storage’ Digest of Papers, pp. 88-93, Monterey, CA. [cited by applicant]
Cabrera et al., “ADSM: A Multi-Platform, Scalable, Backup and Archive Mass Storage System,” Digest of Papers, Compcon '95, Proceedings of the 40th IEEE Computer Society International Conference, Mar. 5, 1995-Mar. 9, 199… [cited by applicant]
Eitel, “Backup and Storage Management in Distributed Heterogeneous Environments,” IEEE, Jun. 12-16, 1994, pp. 124-126. [cited by applicant]
Huff, KL, “Data Set Usage Sequence Number,” IBM Technical Disclosure Bulletin, vol. 24, No. 5, Oct. 1981 New York, US, pp. 2404-2406. [cited by applicant]
Rosenblum et al., “The Design and Implementation of a Log-Structure File System,” Operating Systems Review SIGOPS, vol. 25, No. 5, May 1991, New York, US, pp. 1-15. [cited by applicant]