IP Library Granted Patent US 11,321,190
Granted Patent B2
US 11,321,190 · App. 17/073,018 · Granted May 3, 2022

Distributed framework for task splitting and task assignments in a content indexing system

Inventors: Sanath Kumar (Bengaluru, IN); Sri Karthik Bhagi (Morganville, NJ); Parag Gokhale (Marlboro, NJ); Rahul S. Pawar (Marlboro, NJ); Arun Prabu Duraisamy (Hyderabad, IN); Manoj Kumar Pradhan (Edison, NJ); Dmitriy Borisovich Zakharkin (Monmouth Junction, NJ); Prosenjit Sinha (San Jose, CA); Vipul Pawale (Ocean, NJ); Jaya Rama Raju Inavolu (Eatontown, NJ); Manas Bhikchand Mutha (Tinton Falls, NJ); Pushpendra Singh (Edison, NJ)
Assignee: Commvault Systems, Inc.
G06F11/1464G06F11/1469G06F16/113G06F16/2228G06F16/245G06F2201/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,321,190
App. No.
17/073,018
Granted
May 3, 2022
Kind
B2
Abstract

An improved content indexing (CI) system is disclosed herein. For example, the improved CI system may include a distributed architecture of client computing devices, media agents, a single backup and CI database, and a pool of servers. After a file backup occurs, the backup and CI database may include file metadata indices and other information associated with backed up files. Servers in the pool of servers may, in parallel, query the backup and CI database for a list of files assigned to the respective server that have not been content indexed. The servers may then request a media agent to restore the assigned files from secondary storage and provide the restored files to the servers. The servers may then content index the received restored files. Once the content indexing is complete, the servers can send the content index information to the backup and CI database for storage.

Claims (44)

1. An information management system comprising:

one or more non-transitory computer-readable mediums having computer-executable instructions stored thereon; and

one or more hardware processors that, having executed the computer-executable instructions, cause the system to perform a plurality of operations comprising:

determining a controller content indexing proxy that is available to perform content indexing operations;

determining a total number of worker threads executing on the available controller content indexing proxy that are available to perform content indexing operations;

assigning a portion of a total amount data to content index to the available controller content indexing proxy; and

tracking progress of the content indexing performed by the available controller content indexing proxy, wherein the plurality of operations further comprises transmitting a notification indicating the tracked progress, and

wherein the tracked progress comprises one or more of: a percentage of data assigned to the available controller content indexing proxy that has yet to be content indexed, an amount of data assigned to the available controller content indexing proxy that has yet to be content indexed, and a time remaining until the data assigned to the available controller content indexing proxy is content indexed.

2. The system of claim 1 , wherein determining the total number of worker threads is based on at least the total amount of data to content index.

3. The system of claim 1 , further comprising an indexing storage system configured to transmit an indication of the total amount of data to content index to a master content indexing proxy operating in the system.

4. The system of claim 1 , wherein the plurality of operations further comprises:

determining that the available controller content indexing proxy is operating at a performance level below a threshold value based on the tracked progress; and

assigning at least some of the content indexing assigned to the available controller content indexing proxy to another available controller content indexing proxy.

5. The system of claim 1 , wherein the plurality of operations further comprises:

assigning one or more of: a first archive file, a portion of a second archive file, and individual primary data, to the available controller content indexing proxy.

6. A computer-implemented method method comprising:

determining, by a master content indexing proxy, a controller content indexing proxy that is available to perform content indexing operations, wherein the master content indexing proxy comprises one or more hardware processors, and wherein the controller content indexing proxy comprises one or more hardware processors;

determining, by the master content indexing proxy, a total number of worker threads executing on the available controller content indexing proxy that are available to perform content indexing operations;

assigning, by the master content indexing proxy, a portion of a total amount data to content index to the available controller content indexing proxy;

tracking, by the master content indexing proxy, progress of the content indexing performed by the available controller content indexing proxy; and

transmitting a notification indicating the tracked progress, wherein the tracked progress comprises one or more of: a percentage of data assigned to the available controller content indexing proxy that has yet to be content indexed, an amount of data assigned to the available controller content indexing proxy that has yet to be content indexed, and a time remaining until the data assigned to the available controller content indexing proxy is content indexed.

7. The method of claim 6 , wherein determining the total number of worker threads is based on at least the total amount of data to content index.

8. The method of claim 6 , further comprising transmitting, by an indexing storage system, an indication of the total amount of data to content index to the master content indexing proxy.

9. The method of claim 6 , further comprising:

determining that the available controller content indexing proxy is operating at a performance level below a threshold value based on the tracked progress; and

assigning at least some of the content indexing assigned to the available controller content indexing proxy to another available controller content indexing proxy.

10. The method of claim 6 , further comprising:

assigning one or more of: a first archive file, a portion of a second archive file, and individual primary data to the available controller content indexing proxy.

11. An information management system comprising:

one or more non-transitory computer-readable mediums having computer-executable instructions stored thereon; and

one or more hardware processors that, having executed the computer-executable instructions, cause the system to perform a plurality of operations comprising:

determining a controller content indexing proxy that is available to perform content indexing operations;

determining a total number of worker threads executing on the available controller content indexing proxy that are available to perform content indexing operations;

assigning a portion of a total amount data to content index to the available controller content indexing proxy;

tracking progress of the content indexing performed by the available controller content indexing proxy;

determining that the available controller content indexing proxy is operating at a performance level below a threshold value based on the tracked progress; and

assigning at least some of the content indexing assigned to the available controller content indexing proxy to another available controller content indexing proxy.

12. The system of claim 11 , wherein determining the total number of worker threads is based on at least the total amount of data to content index.

13. The system of claim 11 , further comprising an indexing storage system configured to transmit an indication of the total amount of data to content index to a master content indexing proxy operating in the system.

14. The system of claim 13 , wherein the master content indexing proxy comprises one or more hardware processors and is configured to perform one or more of: the determining of the controller content indexing proxy, the determining of the total number of worker threads, the assigning of the portion of the total amount data, the tracking of the progress, the determining that the available controller content indexing proxy is operating below the threshold value, and the assigning to another available controller content indexing proxy.

15. The system of claim 11 , wherein the plurality of operations further comprises: assigning one or more of: a first archive file, a portion of a second archive file, and individual primary data, to the available controller content indexing proxy.

16. The system of claim 11 , wherein the plurality of operations further comprises transmitting a notification indicating the tracked progress.

17. The system of claim 16 , wherein the tracked progress comprises one or more of: a percentage of data assigned to the available controller content indexing proxy that has yet to be content indexed, an amount of data assigned to the available controller content indexing proxy that has yet to be content indexed, and a time remaining until the data assigned to the available controller content indexing proxy is content indexed.

18. The system of claim 1 , further comprising an indexing storage system configured to transmit an indication of the total amount of data to content index to a master content indexing proxy, wherein the master content indexing proxy comprises one or more hardware processors and is configured to perform one or more of: the determining of the controller content indexing proxy, the determining of the total number of worker threads, the assigning of the portion of the total amount data, and the tracking of the progress.

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 Oct 21, 2020
From: KUMAR, SANATH; BHAGI, SRI KARTHIK; GOKHALE, PARAG; PAWAR, RAHUL S.; DURAISAMY, ARUN PRABU; PRADHAN, MANOJ KUMAR; ZAKHARKIN, DMITRIY BORISOVICH; SINHA, PROSENJIT; PAWALE, VIPUL; INAVOLU, JAYA RAMA RAJU; MUTHA, MANAS BHIKCHAND; SINGH, PUSHPENDRA
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 054174/0023 →