Batch incremental update
First Claim
Patent Images
1. A method comprising:
- receiving a batch update including a plurality of incremental updates for a Rule Compiled Data Structure (RCDS) representing a decision tree for a set of rules used for packet classification, the RCDS being utilized for packet classification by an active search process;
updating the set of rules and one or more rule lists based on the batch update received, each of the one or more rule lists being a subset of the set of rules associated with a category subtree of a housekeeping tree, the housekeeping tree being an augmented representation of the RCDS separate from the RCDS;
updating the housekeeping tree associated with each category subtree associated with the one or more rule lists updated and building a changeset specifying one or more modifications to the RCDS based on the housekeeping tree updated;
updating a shadow image based on the changeset built and determining an update status based on one or more updates to the shadow image and the housekeeping tree, the shadow image reflecting current resources being held by the RCDS and changes to the current resources being held based on the one or more modifications to the RCDS specified and the update status indicating success or failure for the one or more updates to the housekeeping tree and the shadow image;
determining a commit or partial rollback action based on the update status, the commit action being determined given the update status indicates success and the partial rollback action being determined given the update status indicates failure; and
in an event the commit action is determined, applying the changeset built to the RCDS in a manner enabling the RCDS to atomically incorporate the plurality of incremental updates from the perspective of the active search process utilizing the RCDS.
6 Assignments
0 Petitions
Accused Products
Abstract
A system, apparatus, and method are provided for adding, deleting, and modifying rules in one update from the perspective of an active search process for packet classification. While a search processor searches for one or more rules that match keys generated from received packets, there is a need to add, delete, or modify rules. By organizing a plurality incremental updates for adding, deleting, or modifying rules into a batch update, several operations for incorporating the incremental updates may be made more efficient by minimizing a number of updates required.
-
Citations
45 Claims
-
1. A method comprising:
-
receiving a batch update including a plurality of incremental updates for a Rule Compiled Data Structure (RCDS) representing a decision tree for a set of rules used for packet classification, the RCDS being utilized for packet classification by an active search process; updating the set of rules and one or more rule lists based on the batch update received, each of the one or more rule lists being a subset of the set of rules associated with a category subtree of a housekeeping tree, the housekeeping tree being an augmented representation of the RCDS separate from the RCDS; updating the housekeeping tree associated with each category subtree associated with the one or more rule lists updated and building a changeset specifying one or more modifications to the RCDS based on the housekeeping tree updated; updating a shadow image based on the changeset built and determining an update status based on one or more updates to the shadow image and the housekeeping tree, the shadow image reflecting current resources being held by the RCDS and changes to the current resources being held based on the one or more modifications to the RCDS specified and the update status indicating success or failure for the one or more updates to the housekeeping tree and the shadow image; determining a commit or partial rollback action based on the update status, the commit action being determined given the update status indicates success and the partial rollback action being determined given the update status indicates failure; and in an event the commit action is determined, applying the changeset built to the RCDS in a manner enabling the RCDS to atomically incorporate the plurality of incremental updates from the perspective of the active search process utilizing the RCDS. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus comprising:
-
a memory; a processor coupled to the memory, the processor configured to; receive a batch update including a plurality of incremental updates for a Rule Compiled Data Structure (RCDS) representing a decision tree for a set of rules used for packet classification, the RCDS being utilized for packet classification by an active search process; update the set of rules and one or more rule lists based on the batch update received, each of the one or more rule lists being a subset of the set of rules associated with a category subtree of a housekeeping tree, the housekeeping tree being an augmented representation of the RCDS separate from the RCDS; update the housekeeping tree associated with each category subtree associated with the one or more rule lists updated and building a changeset specifying one or more modifications to the RCDS based on the housekeeping tree updated; update a shadow image based on the changeset built and determine an update status based on one or more updates to the shadow image and the housekeeping tree, the shadow image reflecting current resources being held by the RCDS and changes to the current resources being held based on the one or more modifications to the RCDS specified, the update status indicating success or failure for the one or more updates to the housekeeping tree and the shadow image; determine a commit or partial rollback action based on the update status, the commit action being determined given the update status indicates success and the partial rollback action being determined given the update status indicates failure; and in an event the commit action is determined, apply the changeset built to the RCDS in a manner enabling the RCDS to atomically incorporate the plurality of incremental updates from the perspective of the active search process utilizing the RCDS. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A non-transitory computer-readable medium having encoded thereon a sequence of instructions which, when loaded and executed by a processor, causes the processor to:
-
receive a batch update including a plurality of incremental updates for a Rule Compiled Data Structure (RCDS) representing a decision tree for a set of rules used for packet classification, the RCDS being utilized for packet classification by an active search process; update the set of rules and one or more rule lists based on the batch update received, each of the one or more rule lists being a subset of the set of rules associated with a category subtree of a housekeeping tree, the housekeeping tree being an augmented representation of the RCDS separate from the RCDS; update the housekeeping tree associated with each category subtree associated with the one or more rule lists updated and building a changeset specifying one or more modifications to the RCDS based on the housekeeping tree updated; update a shadow image based on the changeset built and determine an update status based on one or more updates to the shadow image and the housekeeping tree, the shadow image reflects current resources being held by the RCDS and changes to the current resources being held based on the one or more modifications to the RCDS specified, the update status indicating success or failure for the one or more updates to the housekeeping tree and the shadow image; determine a commit or partial rollback action based on the update status, the commit action being determined given the update status indicates success and the partial rollback action being determined given the update status indicates failure; and in an event the commit action is determined, apply the changeset built to the RCDS in a manner enabling the RCDS to atomically incorporate the plurality of incremental updates from the perspective of the active search process utilizing the RCDS. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
Specification