IP Library Granted Patent US 10,706,368
Granted Patent B2
US 10,706,368 · App. 14/984,216 · Granted Jul 7, 2020

Systems and methods for efficiently classifying data objects

Inventor: Huw Thomas (Berkshire, GB)
Assignee: Veritas Technologies LLC
G06N20/00G06F16/9024G06N5/046
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 10,706,368
App. No.
14/984,216
Granted
Jul 7, 2020
Kind
B2
Abstract

The disclosed computer-implemented method for efficiently classifying data objects may include (1) receiving a data object to be classified according to a group of rules, where each rule includes one or more clauses, (2) creating, for each rule, a rule evaluation job that directs a rule evaluation processor to evaluate the data object according to the clauses within the rule, where the rule evaluation processor evaluates the clauses in increasing order of estimated processing time, (3) submitting the rule evaluation jobs created for the rules to rule evaluation queues for processing by the rule evaluation processor, where the rule evaluation jobs are submitted in decreasing order of estimated processing time, (4) receiving an evaluation result for each rule evaluation job, and (5) in response to receiving the evaluation results, classifying the data object according to the evaluation results. Various other methods, systems, and computer-readable media are also disclosed.

Claims (52)

1. A computer-implemented method for efficiently classifying data objects, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

receiving a data object to be classified according to a plurality of classification rules for classifying data objects, wherein each classification rule comprises at least one clause;

creating, for each classification rule in the plurality of classification rules, a rule evaluation job that directs a rule evaluation processor of a plurality of independently executing rule evaluation processors to evaluate the data object according to the clauses within the classification rule, wherein the rule evaluation processor that processes the rule evaluation job evaluates the clauses within the classification rule in increasing order of estimated processing time for reducing an amount of time to complete an evaluation of the data object using the classification rule;

submitting the rule evaluation jobs created for the plurality of classification rules to one or more rule evaluation queues for processing by the plurality of independently executing rule evaluation processors in parallel, wherein the rule evaluation jobs are submitted to the one or more rule evaluation queues in decreasing order of estimated processing time for reducing an overall amount of time for the plurality of independently executing rule evaluation processors to complete the rule evaluation jobs;

receiving, from the plurality of independently executing rule evaluation processors, an evaluation result for each rule evaluation job; and

in response to receiving the evaluation results for the rule evaluation jobs, classifying the data object according to the evaluation results.

2. The computer-implemented method of claim 1 , wherein each rule evaluation processor of the plurality of independently executing rule evaluation processors processes rule evaluation jobs from at least one of the one or more rule evaluation queues.

3. The computer-implemented method of claim 1 , wherein the plurality of independently executing rule evaluation processors comprise cores of a multi-core processor.

4. The computer-implemented method of claim 1 , wherein the rule evaluation job:

directs the rule evaluation processor to evaluate the data object according to a classification rule comprising a set of logically conjoined clauses, wherein each clause evaluates at least one attribute of the data object; and

directs the rule evaluation processor to terminate evaluation of the classification rule when evaluation of at least one of the logically conjoined clauses produces a negative result.

5. The computer-implemented method of claim 1 , wherein at least one clause of the classification rule specifies a portion of the data object to be evaluated by the rule evaluation processor.

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

measuring a time taken by at least one rule evaluation processor of the plurality of independently executing rule evaluation processors to evaluate at least one clause of at least one classification rule; and

estimating processing time for the at least one clause based on the measured time.

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

measuring a time taken by at least one rule evaluation processor of the plurality of independently executing rule evaluation processors to evaluate at least one classification rule; and

estimating processing time for the at least one classification rule based on the measured time.

8. A system for efficiently classifying data objects, the system comprising:

a communication module, stored in memory, that receives a data object to be classified according to a plurality of classification rules for classifying data objects, wherein each classification rule comprises at least one clause;

a task module, stored in memory, that creates, for each classification rule in the plurality of classification rules, a rule evaluation job that directs a rule evaluation processor of a plurality of independently executing rule evaluation processors to evaluate the data object according to the clauses within the classification rule, wherein the rule evaluation processor that processes the rule evaluation job evaluates the clauses within the classification rule in increasing order of estimated processing time for reducing an amount of time to complete an evaluation of the data object using the classification rule;

a queuing module, stored in memory, that submits the rule evaluation jobs created for the plurality of classification rules to one or more rule evaluation queues for processing by the plurality of independently executing rule evaluation processors in parallel, wherein the rule evaluation jobs are submitted to the one or more rule evaluation queues in decreasing order of estimated processing time for reducing an overall amount of time for the plurality of independently executing rule evaluation processors to complete the rule evaluation jobs;

a results module, stored in memory, that receives, from the plurality of independently executing rule evaluation processors, an evaluation result for each rule evaluation job;

a classification module, stored in memory, that, in response to receiving the evaluation results for the rule evaluation jobs, classifies the data object according to the evaluation results; and

at least one physical processor configured to execute the communication module, the task module, the queuing module, the results module, and the classification module.

9. The system of claim 8 , wherein each rule evaluation processor of the plurality of independently executing rule evaluation processors processes rule evaluation jobs from at least one of the one or more rule evaluation queues.

10. The system of claim 8 , wherein the plurality of independently executing rule evaluation processors comprise cores of a multi-core processor.

11. The system of claim 8 , wherein the rule evaluation job created by the task module:

directs the rule evaluation processor to evaluate the data object according to a classification rule comprising a set of logically conjoined clauses, wherein each clause evaluates at least one attribute of the data object; and

directs the rule evaluation processor to terminate evaluation of the classification rule when evaluation of at least one of the logically conjoined clauses produces a negative result.

12. The system of claim 8 , wherein at least one clause of the classification rule specifies a portion of the data object to be evaluated by the rule evaluation processor.

13. The system of claim 8 , further comprising an estimation module that:

measures a time taken by at least one rule evaluation processor of the plurality of independently executing rule evaluation processors to evaluate at least one clause of at least one classification rule; and

estimates processing time for the at least one clause based on the measured time.

14. The system of claim 13 , wherein the estimation module:

measures a time taken by at least one rule evaluation processor of the plurality of independently executing rule evaluation processors to evaluate at least one classification rule; and

estimates processing time for the at least one classification rule based on the measured time.

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

receive a data object to be classified according to a plurality of classification rules for classifying data objects, wherein each classification rule comprises at least one clause;

create, for each classification rule in the plurality of classification rules, a rule evaluation job that directs a rule evaluation processor of a plurality of independently executing rule evaluation processors to evaluate the data object according to the clauses within the classification rule, wherein the rule evaluation processor that processes the rule evaluation job evaluates the clauses within the classification rule in increasing order of estimated processing time for reducing an amount of time to complete an evaluation of the data object using the classification rule;

submit the rule evaluation jobs created for the plurality of classification rules to one or more rule evaluation queues for processing by the plurality of independently executing rule evaluation processors in parallel, wherein the rule evaluation jobs are submitted to the one or more rule evaluation queues in decreasing order of estimated processing time for reducing an overall amount of time to complete the rule evaluation jobs;

receive, from the plurality of independently executing rule evaluation processors, an evaluation result for each rule evaluation job; and

in response to receiving the evaluation results for the rule evaluation jobs, classify the data object according to the evaluation results.

16. The non-transitory computer-readable medium of claim 15 , wherein each rule evaluation processor of the plurality of independently executing rule evaluation processors processes rule evaluation jobs from at least one of the one or more rule evaluation queues.

17. The non-transitory computer-readable medium of claim 15 , wherein the plurality of independently executing rule evaluation processors comprise cores of a multi-core processor.

18. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to create the rule evaluation job that:

directs the rule evaluation processor to evaluate the data object according to a classification rule comprising a set of logically conjoined clauses, wherein each clause evaluates at least one attribute of the data object; and

directs the rule evaluation processor to terminate evaluation of the classification rule when evaluation of at least one of the logically conjoined clauses produces a negative result.

19. The non-transitory computer-readable medium of claim 15 , wherein at least one clause of the classification rule specifies a portion of the data object to be evaluated by the rule evaluation processor.

20. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to:

measure a time taken by at least one rule evaluation processor of the plurality of independently executing rule evaluation processors to evaluate at least one clause of at least one classification rule; and

estimate processing time for the at least one clause based on the measured time.

Assignments (11)
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 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: SYMANTEC CORPORATION
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 044362/0859 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2015
From: THOMAS, HUW
To: SYMANTEC CORPORATION
Reel/Frame 037384/0238 →
Continuity (1)
Related Publication 20170193389A1 · Jul 6, 2017