IP Library Granted Patent US 9,426,211
Granted Patent B2
US 9,426,211 · App. 13/974,714 · Granted Aug 23, 2016

Scaling event processing in a network environment

Inventors: Gaurav Garg (Bangalore, IN); Aditya Pandit (Pune, IN)
Assignee: CISCO TECHNOLOGY, INC.
H04L67/10G06F9/542H04L41/00
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,426,211
App. No.
13/974,714
Granted
Aug 23, 2016
Kind
B2
Abstract

An example method for scaling event processing in a network environment is provided and includes maintaining a first portion of a decision tree at a first server in the network environment, delegating a second portion of the decision tree from the first server to a second server, processing event data substantially simultaneously at the first server using the first portion of the decision tree and at the second server using the second portion of the decision tree, wherein the processing comprises determining a match between the event data and information stored at nodes in the decision tree. In various embodiments, the decision tree is distributed across a plurality of servers in the network, wherein each participating server maintains a local copy of a respective portion of the decision tree and processes the event data using the respective portion.

Claims (61)

1. A method, comprising:

maintaining, by a first processing engine executing at a first server, a first portion of a decision tree at the first server in a network environment, wherein the decision tree comprises a data structure that uses tree-like graphs to model and evaluate discrete functions;

delegating, by the first processing engine, a second portion of the decision tree from the first server to a second processing engine executing at a second server; and

processing event data simultaneously at the first server by the first processing engine using the first portion of the decision tree and at the second server by the second processing engine using the second portion of the decision tree, wherein the processing comprises determining a match between the event data and information stored at nodes in the decision tree, wherein the event data is associated with at least one event occurring at one or more network devices within the network to one or more event data collectors, wherein the simultaneous processing enables fast throughput through multiple processors in the network improving functioning of servers in the network.

2. The method of claim 1 , further comprising:

determining a dependency of the event data and processing state between the second server and one or more servers;

revoking a delegation lock to the second server after processing at the second server;

retrieving the processed event data and the second portion of the decision tree from the second server; and

distributing the processed event data and the second portion of the decision tree to all other servers having the dependency.

3. The method of claim 2 , further comprising locally updating the second portion of the decision tree at the second server.

4. The method of claim 3 , further comprising returning the updated second portion of the decision tree to the first server.

5. The method of claim 1 , wherein the second portion of the decision tree is delegated if either memory usage or the processor usage on the first server exceeds respective predetermined thresholds.

6. The method of claim 1 , further comprising returning processing state to the first server after processing is completed on the second server.

7. The method of claim 1 , further comprising:

delegating a third portion of the decision tree to a third server;

processing event data simultaneously at the third server;

pushing processing state from the second server to the third server; and

terminating the processing at the second server.

8. The method of claim 1 , further comprising:

determining a relation of subsequent event data to the previous event data;

delegating processing of the subsequent event data to the second server according to the determined relation.

9. The method of claim 1 , further comprising:

pushing the processed event data after processing from the first server to the second server, wherein the second server processes the event data and the processed event data from the first server according to the second portion of the decision tree.

10. The method of claim 1 , wherein the decision tree is distributed across a plurality of servers in the network, wherein each participating server maintains a local copy of a respective portion of the decision tree and processes the event data using the respective portion.

11. Non-transitory tangible media encoding logic that includes instructions for execution, which when executed by a processor of a first processing engine executing at a first server, is operable to perform operations comprising:

maintaining, by the first processing engine a first portion of a decision tree at the first server in a network environment, wherein the decision tree comprises a data structure that uses tree-like graphs to model and evaluate discrete functions;

delegating, by the first processing engine, a second portion of the decision tree from the first server to a second processing engine executing at a second server; and

processing event data simultaneously at the first server by the first processing engine using the first portion of the decision tree and at the second server by the second processing engine using the second portion of the decision tree, wherein the processing comprises determining a match between the event data and information stored at nodes in the decision tree, wherein event data is associated with at least one event occurring at one or more network devices within the network to one or more event data collectors, wherein the simultaneous processing enables fast throughput through multiple processors in the network improving functioning of servers in the network.

12. The media of claim 11 , wherein the operations further comprise:

determining a dependency of the event data and processing state between the second server and one or more servers;

revoking a delegation lock to the second server after processing at the second server;

retrieving the processed event data and the second portion of the decision tree from the second server; and

distributing the processed event data and the second portion of the decision tree to all other servers having the dependency.

13. The media of claim 12 , wherein the operations further comprise locally updating the second portion of the decision tree at the second server.

14. The media of claim 11 , wherein the operations further comprise:

delegating a third portion of the decision tree to a third server;

processing event data simultaneously at the third server;

pushing processing state from the second server to the third server; and

terminating the processing at the second server.

15. The media of claim 11 , wherein the decision tree is distributed across a plurality of servers in the network, wherein each participating server maintains a local copy of a respective portion of the decision tree and processes the event data using the respective portion.

16. A first server, comprising:

a distributer;

a first processing engine;

a memory element for storing data; and

a processor that executes instructions associated with the data, wherein the processor and the memory element cooperate such that the first server is configured for:

maintaining, by the first processing engine, a first portion of a decision tree at the first server in a network environment, wherein the decision tree comprises a data structure that uses tree-like graphs to model and evaluate discrete functions;

delegating, by the first processing engine, a second portion of the decision tree from the first server to a second processing engine executing at a second server; and

processing event data simultaneously at the first server by the first processing engine using the first portion of the decision tree and at the second server by the second processing engine using the second portion of the decision tree, wherein the processing comprises determining a match between the event data and information stored at nodes in the decision tree, wherein event data is associated with at least one event occurring at one or more network devices within the network to one or more event data collectors, wherein the simultaneous processing enables fast throughput through multiple processors in the network improving functioning of servers in the network.

17. The first server of claim 16 , further configured for:

determining a dependency of the event data and processing state between the second server and one or more servers;

revoking a delegation lock to the second server after processing at the second server;

retrieving the processed event data and the second portion of the decision tree from the second server; and

distributing the processed event data and the second portion of the decision tree to all other servers having the dependency.

18. The first server of claim 17 , further configured for:

updating the second portion of the decision tree at the second server.

19. The first server of claim 16 , wherein the decision tree is distributed across a plurality of servers in the network, wherein each participating server maintains a local copy of a respective portion of the decision tree and processes the event data using the respective portion.

20. The first server of claim 16 , further configured for:

delegating a third portion of the decision tree to a third server;

processing event data simultaneously at the third server;

pushing processing state from the second server to the third server; and

terminating the processing at the second server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2013
From: GARG, GAURAV; PANDIT, ADITYA
To: CISCO TECHNOLOGY, INC.
Reel/Frame 031071/0980 →
Continuity (1)
Related Publication 20150058449A1 · Feb 26, 2015