IP Library Granted Patent US 9,922,033
Granted Patent B1
US 9,922,033 · App. 14/754,734 · Granted Mar 20, 2018

Systems and methods for efficiently extracting contents of container files

Inventor: Shyam Odedra (Venice, CA)
Assignee: Veritas Technologies LLC
G06F17/30073G06F17/30589G06F17/30864
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 9,922,033
App. No.
14/754,734
Granted
Mar 20, 2018
Kind
B1
Abstract

The disclosed computer-implemented method for efficiently extracting contents of container files may include (1) receiving a container file that includes (a) an additional container file that includes (i) a constituent file and (ii) metadata of the constituent file and (b) metadata of the additional container file, (2) creating, before the constituent file is extracted from the additional container file, a content hierarchy for the container file that includes (a) the metadata of the constituent file, (b) hierarchical metadata that indicates that the container file includes the additional container file, and (c) additional hierarchical metadata that indicates that the additional container file includes the constituent file, (3) querying, after the content hierarchy is created, the content hierarchy to locate the constituent file within the additional container file, (4) extracting the constituent file, and (5) performing an action on the constituent file. Various other methods, systems, and computer-readable media are also disclosed.

Claims (92)

1. A computer-implemented method for efficiently extracting contents of container files, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

receiving, at a first stage of a file-archiving system, an unnested container file containing a first constituent file and a second constituent file, wherein:

the first constituent file is a nested container file that contains the second constituent file; and

the file-archiving system is configured to perform a time-consuming file-indexing operation;

enabling high file throughput at the first stage of the file-archiving system by refraining, at the first stage of the file-archiving system, from performing the time-consuming file-indexing operation;

enabling a second stage of the file-archiving system to perform the time-consuming file-indexing operation on the second constituent file by creating, at the first stage of the file-archiving system, a content hierarchy for the unnested container file that comprises:

metadata of the second constituent file;

first hierarchical metadata that indicates that the unnested container file contains the nested container file; and

second hierarchical metadata that indicates that the nested container file contains the second constituent file;

using, at the second stage of the file-archiving system, the content hierarchy to locate the second constituent file within the nested container file;

extracting, at the second stage of the file-archiving system, the second constituent file from the nested container file;

performing, at the second stage of the file-archiving system, the time-consuming file-indexing operation on the second constituent file.

2. The computer-implemented method of claim 1 , wherein:

the file-archiving system comprises:

at least one computing node that comprises hardware resources that are optimized to parse container-file metadata;

at least one additional computing node that comprises additional hardware resources that are optimized to perform the time-consuming file-indexing operation;

the first stage of the file-archiving system is performed by the at least one computing node;

the second stage of the file-archiving system is performed by the at least one additional computing node.

3. The computer-implemented method of claim 1 , wherein the file-indexing operation comprises a time-consuming content-conversion operation.

4. The computer-implemented method of claim 1 , wherein:

the file-archiving system comprises an email archiving system;

the unnested container file comprises an email;

the nested container file comprises an attachment of the email.

5. The computer-implemented method of claim 1 , wherein:

the second hierarchical metadata indicates that the second constituent file is at a hierarchical level within the unnested container file;

using the content hierarchy to locate the second constituent file within the nested container file comprises using the content hierarchy to locate one or more files at the hierarchical level within the unnested container file.

6. The computer-implemented method of claim 1 , wherein:

the metadata of the second constituent file comprises a file type of the second constituent file;

using the content hierarchy to locate the second constituent file within the nested container file comprises using the content hierarchy to locate one or more files of the file type of the second constituent file.

7. The computer-implemented method of claim 1 , wherein:

the metadata of the second constituent file comprises a size of the second constituent file;

using the content hierarchy to locate the second constituent file within the nested container file comprises using the content hierarchy to locate one or more files that are of the size.

8. The computer-implemented method of claim 1 , wherein performing the time-consuming file-indexing operation on the second constituent file comprises converting the second constituent file to a text-based representation of the second constituent file.

9. The computer-implemented method of claim 8 , wherein performing the time-consuming file-indexing operation on the second constituent file comprises using the text-based representation of the second constituent file to index the second constituent file.

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

after the content hierarchy has been created, receiving a request for the metadata of the second constituent file;

locating the metadata of the second constituent file stored within the content hierarchy;

responding to the request with the metadata of the second constituent file stored within the content hierarchy.

11. The computer-implemented method of claim 1 , wherein:

the unnested container file comprises a third constituent file;

the step of extracting the second constituent file from the nested container file is performed without extracting the third constituent file from the unnested container file.

12. The computer-implemented method of claim 1 , wherein:

the content hierarchy comprises hierarchical metadata for each file contained within the unnested container file;

the content hierarchy is completely created at the first stage of the file-archiving system before any file is extracted at the second stage of the file-archiving system.

13. The computer-implemented method of claim 1 , wherein no files are extracted from the unnested container file at the first stage of the file-archiving system.

14. The computer-implemented method of claim 1 , wherein:

the unnested container file comprises an additional nested container file;

the additional nested container file contains the nested container file;

the first hierarchical metadata indicates that the unnested container file contains the additional nested container file;

the content hierarchy comprises third hierarchical metadata that indicates that the additional nested container file contains the nested container file.

15. The computer-implemented method of claim 1 , wherein:

the unnested container file contains metadata of the nested container file that is separate and distinct from the nested container file;

the nested container file contains the metadata of the second constituent file that is separate and distinct from the second constituent file.

16. A system for efficiently extracting contents of container files, the system comprising:

a file-receiving module, stored in memory, that receives, at a first stage of a file-archiving system, an unnested container file containing a first constituent file and a second constituent file, wherein:

the first constituent file is a nested container file that contains the second constituent file; and

the file-archiving system is configured to perform a time-consuming file-indexing operation;

a creating module, stored in memory, that:

enables high file throughput at the first stage of the file-archiving system by refraining, at the first stage of the file-archiving system, from performing the time-consuming file-indexing operation; and

enables a second stage of the file-archiving system to perform the time-consuming file-indexing operation on the second constituent file by creating, at the first stage of the file-archiving system and before the second constituent file is extracted from the nested container file, a content hierarchy for the unnested container file that comprises:

metadata of the second constituent file;

first hierarchical metadata that indicates that the unnested container file comprises the nested container file; and

second hierarchical metadata that indicates that the nested container file comprises the second constituent file;

a locating module, stored in memory, that uses, at the second stage of the file-archiving system, the content hierarchy to locate the second constituent file within the nested container file;

an extracting module, stored in memory, that extracts, at the second stage of the file-archiving system, the second constituent file from the nested container file;

a file-management module, stored in memory, that performs, at the second stage of the file-archiving system, the time-consuming file-indexing operation on the second constituent file; and

at least one processor that executes the file-receiving module, the creating module, the locating module, the extracting module, and the file-management module.

17. The system of claim 16 , wherein:

the file-archiving system comprises:

at least one computing node that comprises hardware resources that are optimized to parse container-file metadata;

at least one additional computing node that comprises additional hardware resources that are optimized to perform the time-consuming file-indexing operation;

the first stage of the file-archiving system is performed by the at least one computing node;

the second stage of the file-archiving system is performed by the at least one additional computing node.

18. The system of claim 16 , wherein:

the file-archiving system comprises an email archiving system;

the unnested container file comprises an email;

the nested container file comprises an attachment of the email.

19. The system of claim 16 , wherein:

the second hierarchical metadata indicates that the second constituent file is at a hierarchical level within the unnested container file;

the locating module uses the content hierarchy to locate the second constituent file within the nested container file by using the content hierarchy to locate one or more files at the hierarchical level within the unnested container file.

20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive, at a first stage of a file-archiving system, an unnested container file containing a first constituent file and a second constituent file, wherein:

the first constituent file is a nested container file that contains the second constituent file; and

the file-archiving system is configured to perform a time-consuming file-indexing operation;

enable high file throughput at the first stage of the file-archiving system by refraining, at the first stage of the file-archiving system, from performing the time-consuming file-indexing operation;

enable a second stage of the file-archiving system to perform the time-consuming file-indexing operation on the second constituent file by creating, at the first stage of the file-archiving system, a content hierarchy for the unnested container file that comprises:

metadata of the second constituent file;

first hierarchical metadata that indicates that the unnested container file comprises the nested container file; and

second hierarchical metadata that indicates that the nested container file comprises the second constituent file;

use, at the second stage of the file-archiving system, the content hierarchy to locate the second constituent file within the nested container file;

extract, at the second stage of the file-archiving system, the second constituent file from the nested container file;

perform, at the second stage of the file-archiving system, the time-consuming file-indexing operation on the second constituent file.

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2015
From: ODEDRA, SHYAM
To: SYMANTEC CORPORATION
Reel/Frame 035934/0268 →