IP Library Granted Patent US 8,898,204
Granted Patent B1
US 8,898,204 · App. 13/278,753 · Granted Nov 25, 2014

System and method for controlling updates of a data structure

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 8,898,204
App. No.
13/278,753
Granted
Nov 25, 2014
Kind
B1
Abstract

System and method for controlling updates of a data structure are disclosed. In one embodiment, the method includes providing a data structure that includes a hierarchically arranged set of nodes and branches, and each node has two or less branches, recording a total number of nodes in the data structure, determining whether to update the data structure according to one or more triggering conditions, generating an updated data structure in response to the one or more triggering conditions, and storing the updated data structure in a memory. The method of recording a total number of nodes includes incrementing a count of the total number of nodes by one when a new node is added to the data structure, and decrementing a count of the total number of nodes by one when a node is removed from the data structure.

Claims (67)

1. A method of controlling updates of a data structure, comprising:

providing a data structure, wherein the data structure includes a hierarchically arranged set of nodes and branches, and each node has two or less branches;

recording a total number of nodes in the data structure;

determining whether to update the data structure according to one or more triggering conditions and a number of levels of nodes in the data structure;

generating a trigger to update the data structure if the number of levels of nodes in the data structure is larger than a logarithmic function of a number of nodes in the data structure;

generating an updated data structure in response to the one or more triggering conditions; and

storing the updated data structure in a memory.

2. The method of claim 1 , wherein recording a total number of nodes comprises:

incrementing a count of the total number of nodes by one when a new node is added to the data structure.

3. The method of claim 1 , wherein recording a total number of nodes comprises:

decrementing a count of the total number of nodes by one when a node is removed from the data structure.

4. The method of claim 1 , wherein determining whether to update the data structure comprises:

determining a worst case number of accesses to locate a data entry in the data structure; and

generating a trigger to update the data structure if the worst case number of accesses exceeds a first predetermined threshold value.

5. The method of claim 1 , wherein the method is comprised in an intrusion detection method.

6. The method of claim 1 , wherein determining whether to update the data structure further comprises:

counting a number of nodes visited from a root node when a new leaf node is added to the date structure; and

generating a trigger to update the data structure if the number of nodes visited from the root node to the new leaf node exceeds a second predetermined threshold value.

7. The method of claim 1 , wherein determining whether to update the data structure further comprises:

comparing number of levels in one branch of a node to number of levels in another branch of the node in the data structure; and

generating a trigger to update the data structure if the number of levels in one branch of the node is two or more than the number of levels in another branch of the node.

8. A computer program product for controlling updates of a data structure, comprising a non-transitory medium storing computer programs for execution by one or more computer systems, the computer program product comprising:

code for providing a data structure, wherein the data structure includes a hierarchically arranged set of nodes and branches, and each node has two or less branches;

code for recording a total number of nodes in the data structure;

code for determining whether to update the data structure according to one or more triggering conditions;

code for counting a number of nodes visited from a root node when a new leaf node is added to the date structure; and

code for generating a trigger to update the data structure if the number of nodes visited from the root node to the new leaf node exceeds a second predetermined threshold value;

code for generating an updated data structure in response to the one or more triggering conditions; and

code for storing the updated data structure in a memory.

9. The computer program product of claim 8 , wherein code for recording a total number of nodes comprises:

code for incrementing a count of the total number of nodes by one when a new node is added to the data structure.

10. The computer program product of claim 8 , wherein code for recording a total number of nodes comprises:

code for decrementing a count of the total number of nodes by one when a node is removed from the data structure.

11. The computer program product of claim 8 , wherein code for determining whether to update the data structure comprises:

code for determining a worst case number of accesses to locate a data entry in the data structure; and

code for generating a trigger to update the data structure if the worst case number of accesses exceeds a first predetermined threshold value.

12. The computer program product of claim 8 , wherein code for determining whether to update the data structure further comprises:

code for determining a number of levels of nodes in the data structure; and

code for generating a trigger to update the data structure if the number of levels of nodes in the data structure is larger than a logarithmic function of a number of nodes in the data structure.

13. The computer program product of claim 8 comprised in a virus detection system.

14. The computer program product of claim 8 , wherein code for determining whether to update the data structure further comprises:

code for comparing number of levels in one branch of a node to number of levels in another branch of the node in the data structure; and

code for generating a trigger to update the data structure if the number of levels in one branch of the node is two or more than the number of levels in another branch of the node.

15. A system for controlling updates of a data structure, comprising:

a memory for storing the data structure, wherein the data structure includes a hierarchically arranged set of nodes and branches, and each node has two or less branches;

a user interface for viewing representations of the data structure on a display;

at least a processor and control logic, wherein the processor and control logic further includes logic for providing the data structure;

logic for recording a total number of nodes in the data structure;

logic for determining whether to update the data structure according to one or more triggering conditions;

logic for comparing number of levels in one branch of a node to number of levels in another branch of the node in the data structure;

logic for generating a trigger to update the data structure if the number of levels in one branch of the node is two or more than the number of levels in another branch of the node;

logic for generating an updated data structure in response to the one or more triggering conditions; and

logic for storing the updated data structure in the memory.

16. The system of claim 15 , wherein logic for recording a total number of nodes comprises:

logic for incrementing a count of the total number of nodes by one when a new node is added to the data structure.

17. The system of claim 15 , wherein logic for recording a total number of nodes comprises:

logic for decrementing a count of the total number of nodes by one when a node is removed from the data structure.

18. The system of claim 15 , wherein logic for determining whether to update the data structure comprises:

logic for determining a worst case number of accesses to locate a data entry in the data structure; and

logic for generating a trigger to update the data structure if the worst case number of accesses exceeds a first predetermined threshold value.

19. The system of claim 15 , wherein logic for determining whether to update the data structure further comprises:

logic for determining a number of levels of nodes in the data structure; and

logic for generating a trigger to update the data structure if the number of levels of nodes in the data structure is larger than a logarithmic function of a number of nodes in the data structure.

20. The system of claim 15 , wherein logic for determining whether to update the data structure further comprises:

logic for counting a number of nodes visited from a root node when a new leaf node is added to the date structure; and

logic for generating a trigger to update the data structure if the number of nodes visited from the root node to the new leaf node exceeds a second predetermined threshold value.

21. The system of claim 15 , wherein the system is comprised in a header lookup engine.

Assignments (6)
CHANGE OF NAME Recorded Dec 6, 2017
From: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
To: AMPERE COMPUTING LLC
Reel/Frame 044717/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC
To: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
Reel/Frame 044798/0599 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2017
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
Reel/Frame 044652/0609 →
SECURITY INTEREST Recorded May 11, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 042444/0891 →
MERGER AND CHANGE OF NAME Recorded Apr 6, 2017
From: APPLIED MICRO CIRCUITS CORPORATION; MACOM CONNECTIVITY SOLUTIONS, LLC; MACOM CONNECTIVITY SOLUTIONS, LLC
To: MACOM CONNECTIVITY SOLUTIONS, LLC
Reel/Frame 042176/0185 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2011
From: SATHE, SATISH; MARULKAR, RAJENDRA; VAISHAMPAYAN, SAGAR
To: APPLIED MICRO CIRCUITS CORPORATION
Reel/Frame 027103/0663 →