OPTIMIZATION OF ABSTRACT RULE PROCESSING
First Claim
1. A computer-implemented method of processing an abstract rule, comprising:
- receiving an abstract rule having (i) a conditional statement and (ii) a consequential statement defining a particular result returned by the abstract rule for a given set of input data supplied to the rule;
receiving a set of query results comprising a plurality of data records each including one or more input values;
sorting the plurality of data records according to the one or more input values;
splitting the sorted plurality of data records into two or more data blocks;
for each record of a data block, determining whether the input values of a first record match the input values of a previously processed record;
if so, setting, as an output of processing the first record, the result returned for the processing rule for the previously processed record, andotherwise, processing the input values of the first record against the abstract rule to produce a result.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the invention provide techniques for optimizing the processing of abstract rules. In general, the results of executing an abstract query may be used as data inputs for processing an abstract rule. In one embodiment, query results may be sorted according to input field values required for processing a deterministic abstract rule. If a record of the sorted query results includes the same input values as a preceding record, then the rule output of the preceding record may be reused, rather than processing the abstract rule again. Accordingly, the demand load placed on a rule engine may be reduced.
-
Citations
24 Claims
-
1. A computer-implemented method of processing an abstract rule, comprising:
-
receiving an abstract rule having (i) a conditional statement and (ii) a consequential statement defining a particular result returned by the abstract rule for a given set of input data supplied to the rule; receiving a set of query results comprising a plurality of data records each including one or more input values; sorting the plurality of data records according to the one or more input values; splitting the sorted plurality of data records into two or more data blocks; for each record of a data block, determining whether the input values of a first record match the input values of a previously processed record; if so, setting, as an output of processing the first record, the result returned for the processing rule for the previously processed record, and otherwise, processing the input values of the first record against the abstract rule to produce a result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable storage medium containing a program which, when executed, performs an operation for processing an abstract rule, comprising:
-
receiving an abstract rule having (i) a conditional statement and (ii) a consequential statement defining a particular result returned by the abstract rule for a given set of input data supplied to the rule; receiving a set of query results comprising a plurality of data records each including one or more input values; sorting the plurality of data records according to the one or more input values; splitting the sorted plurality of data records into two or more data blocks; for each record of a data block, determining whether the input values of a first record match the input values of a previously processed record; if so, setting, as an output of processing the first record, the result returned for the processing rule for the previously processed record, and otherwise, processing the input values of the first record against the abstract rule to produce a result. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
-
one or more processing nodes; and a memory containing a program, which when executed on the one or more processing nodes, is configured to process an abstract rule by performing the steps of; receiving an abstract rule having (i) a conditional statement and (ii) a consequential statement defining a particular result returned by the abstract rule for a given set of input data supplied to the rule; receiving a set of query results comprising a plurality of data records each including one or more input values; sorting the plurality of data records according to the one or more input values; splitting the sorted plurality of data records into two or more data blocks; for each record of a data block, determining whether the input values of a first record match the input values of a previously processed record; if so, setting, as an output of processing the first record, the result returned for the processing rule for the previously processed record, and otherwise, processing the input values of the first record against the abstract rule to produce a result. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification