Patent ID: 7853548

Claim:
A method for implementing rule evaluation within a policy-based data management system, the method consisting of: analyzing common rule conditions and action patterns of a predetermined set of policy rules, wherein the analyzation of the common rule conditions and action patterns of a predetermined set of policy rules comprises determining a set of attributes that are to be indexed, the determining of the attributes comprising: parsing component unit expressions for a rule condition, and for each unit expression: classifying an operand as a constant or variable operand; classifying an attribute as a dynamic attribute, which changes frequently over time, or a static attribute, which does not change over time once defined; classifying an action pattern as a one-time or recurring action pattern; classifying the unit expression as a static or dynamic unit expression, wherein the unit expression is a static unit expression if it is only composed of static attributes and constant operands; indexing each attribute that is associated with a non-static unit expressions; creating change logs for each attribute that is only associated with a static unit expression, wherein one change log is per object for all attributes, which tracks the objects for all attributes, any of whose attributes has changed, and another change log is for static attributes, which tracks objects of whose static attributes has changed; generating a collective change log for each static unit expression, wherein the collective change log is the union of the attribute change logs for all component attributes of the static unit expression; identifying a cache result set for the static unit expression, wherein the cache result set is combined within a final result change log set; scanning objects comprised within the change log set, wherein in the instance that an object is a match for the static unit expression then it is added to the change log set, and conversely, in the instance that an object is not a match for the static unit expression the object is removed from the change log set in the event that the object was comprised within the cache result set; returning a final change log result set for the static unit expression; and minimizing the number of objects that are to be checked for a condition evaluation.