IP Library Granted Patent US 11,119,868
Granted Patent B2
US 11,119,868 · App. 16/936,424 · Granted Sep 14, 2021

Load balancing across multiple data paths

Inventors: Jaidev O. Kochunni (Santa Clara, CA); Chong Liu (Ellicott City, MD); Manoj Kumar Vijayan (Marlboro, NJ); Rajiv Kottomtharayil (Marlboro, NJ)
Assignee: Commvault Systems, Inc.
G06F11/1464G06F3/065G06F3/067G06F3/0619G06F3/0626G06F3/0641G06F11/1435G06F11/1448G06F11/1451G06F11/1453G06F11/349G06F11/3433G06F11/3485G06F11/1461G06F11/1469G06F2201/84
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 11,119,868
App. No.
16/936,424
Granted
Sep 14, 2021
Kind
B2
Abstract

Multiple data paths may be available to a data management system for transferring data between a primary storage device and a secondary storage device. The data management system may be able to gain operational advantages by performing load balancing across the multiple data paths. The system may use application layer characteristics of the data for transferring from a primary storage to a backup storage during data backup operation, and correspondingly from a secondary or backup storage system to a primary storage system during restoration.

Claims (42)

1. A non-transitory computer-readable medium carrying instructions, which when executed by at least one data processor, perform operations for copying or transferring data from primary storage to secondary storage, the operations comprising:

identifying at least two data sets among the data based on one or more application-level characteristics of the data;

allocating a job for transferring the data from the primary storage to the secondary storage; and

identifying multiple streams of the job for transferring the data from the primary storage to the secondary storage,

wherein each stream is allocated a data path for carrying one or more of the at least two data sets of the data, and

wherein each data path is associated with different storage locations of the secondary storage.

2. The non-transitory computer-readable medium of claim 1 , wherein each data set is associated with one or more tags indicative of application-level characteristics.

3. The non-transitory computer-readable medium of claim 1 , wherein at least two different streams among the multiple streams comprise a first stream configured to transfer data over a first host bus adapter and a second stream configured to transfer data over a second host bus adapter that uses a different bus technology than the first host bus adapter.

4. The non-transitory computer-readable medium of claim 1 , wherein one type of data to be transferred is generated by a user or an application, wherein the one type of data is to be accessed more frequently or is more critical as compared to another type of data that is to be accessed less frequently or is more tolerant of errors, and wherein the other type of data is database data, wherein the one type of data includes log files and index tables for the database data, wherein the log files and index tables are copied to a first data storage device that is faster, more accurate or provides a greater number of read/write cycles over its lifetime as compared to a second data storage device, while the database data is copied to the second data storage device.

5. The non-transitory computer-readable medium of claim 1 , wherein one type of data to be transferred is generated by a user or an application, wherein the one type of data is to be accessed more frequently or is more critical as compared to another type of data that is to be accessed less frequently or is more tolerant of errors, and wherein the one type of data includes encrypted data or financial data that is more sensitive to individual bit errors, and the other type of data includes bulk media files, wherein the one type of data is copied using a first host bus adapter and first storage drive having a lower probability of read/write errors or a longer shelf life as compared to a second host bus adapter and a second storage drive for copying the bulk media files.

6. The non-transitory computer-readable medium of claim 1 , wherein one type of data to be transferred is generated by an application, and wherein the one type of data is to be accessed more frequently or is more critical as compared to another type of data that is to be accessed less frequently or is more tolerant of errors.

7. The non-transitory computer-readable medium of claim 1 , wherein the operations further comprise:

providing, to a media agent, information identifying a primary data storage location in the primary storage and a destination storage location in the secondary storage.

8. The non-transitory computer-readable medium of claim 1 , wherein the operations further comprise:

receiving, for the job, a storage policy that specifies a rule for assigning a media agent and a destination storage location in the secondary storage; and

allocating resources to the job according to the storage policy, wherein the storage policy further specifies a de-duplication rule for the job, wherein the de-duplication rule specifies a directory to be used for de-duplication or a hash function to be used for de-duplication.

9. The non-transitory computer-readable medium of claim 1 , wherein the operations further comprise:

receiving, for the job, a storage policy that specifies a rule for assigning a media agent and a destination storage location in the secondary storage; and

allocating resources to the job according to the storage policy.

10. The non-transitory computer-readable medium of claim 1 , wherein the operations further comprise:

receiving, from a media agent, information identifying at least one primary data storage location and a corresponding secondary data storage location.

11. The non-transitory computer-readable medium of claim 1 , wherein the operations further comprise:

maintaining, for the primary storage, information identifying a first data set and a first group of secondary storage locations at which units making up the first data set are stored, and a second data set and a second group of secondary storage locations at which units making up the second data set are stored.

12. The non-transitory computer-readable medium of claim 1 , wherein the operations further comprise:

assigning data paths for restoring multiple subsets of the data stored at the secondary storage; and

restoring the multiple subsets of data,

wherein at least two subsets of the data are restored using two different data paths.

13. A computer-executable method, which when executed by at least one data processor, performs a method for copying or transferring data from primary storage to target data storage, the method comprising:

reserving system resources for performing load balancing transfer operations across multiple data paths; and

causing the load balancing transfer operations to be performed for the data from the primary storage to different storage locations of the target data storage.

14. The method of claim 13 , wherein the load balancing transfer operations provide balanced use of system resources, including host bus adapters and data storage devices having different characteristics of one or more of: read/write speeds, read/write life cycles, and error tolerances.

15. The method of claim 13 , wherein the load balancing transfer operations allow a backup storage system to use at least one application-level characteristic associated with data in data backup and data restoration operations with respect to different data storage devices within the backup storage system.

16. The method of claim 13 , wherein one type of data to be copied is generated by an application, wherein the one type of data is to be accessed more frequently or is more critical as compared to another type of data that is to be accessed less frequently or is more tolerant of errors, and wherein the other type of data is database data, wherein the one type of data includes log files and index tables for the database data, wherein the log files and index tables are copied to a first data storage device that is faster, more accurate or provides a greater number of read/write cycles over its lifetime as compared to a second data storage device, while the database data is copied to the second data storage device.

17. The method of claim 13 , wherein one type of data to be copied is generated by an application, wherein the one type of data is to be accessed more frequently or is more critical as compared to another type of data that is to be accessed less frequently or is more tolerant of errors, and wherein the one type of data includes encrypted data or financial data that is more sensitive to individual bit errors, and the other type of data includes bulk media files, wherein the one type of data is copied using a first host bus adapter and first storage drive having a lower probability of read/write errors or a longer shelf life as compared to a second host bus adapter and a second storage drive for copying the bulk media files.

18. The method of claim 13 , wherein one type of data to be copied is generated by an application, and wherein the one type of data is to be accessed more frequently or is more critical as compared to another type of data that is to be accessed less frequently or is more tolerant of errors.

19. A computer-executable method, which when executed by at least one data processor, performs a method for copying or transferring data from primary storage to target data storage, the method comprising:

identifying different data sets among the data based on one or more tags indicative of application-level characteristics of the data;

allocating a job for transferring at least a subset of the data from the primary storage to the target data storage; and

identifying multiple streams of the job to transfer the subset of the data from the primary storage to the target data storage,

wherein each of the multiple streams is allocated a data path for carrying one or more of the different data sets of the data, and

wherein each data path is associated with different storage locations of the target data storage.

20. The method of claim 19 , wherein at least two different streams among the multiple streams comprise: a first stream configured to transfer data over a first host bus adapter, and a second stream configured to transfer data over a second host bus adapter that uses a different bus technology than the first host bus adapter.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2020
From: KOCHUNNI, JAIDEV O.; LIU, CHONG; VIJAYAN, MANOJ KUMAR; KOTTOMTHARAYIL, RAJIV
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 053463/0352 →