Patent ID: 8607217

Claim:
At a computer system including at least one processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for incrementally upgrading an entity-relationship system, the method comprising: an act of receiving an indication that a first instance comprising a first specified set of entities is to be upgraded to a second instance comprising a second specified set of entities, the second instance including at least one entity that is different from the first specified set of entities, the second instance comprising an upgraded version of the first instance; an act of accessing the first and the second instances to determine the differences between the entities of each instance, including: in a first pass, walking through entity trees corresponding to the first and second instances and determining (i) any entities that are new in the second instance relative to the first instance, (ii) any entities that are removed in the second instance relative to the first instance, and (iii) any entities that have been modified in the second instance relative to the first instance; marking the identified modified entities for further comparison to determine which attributes and/or relationships have been modified; and in a second pass subsequent to the first pass, determining one or more attributes and/or one or more relationships that have been changed for each entity that has been modified in the second instance relative to the first instance; an act of discovering, based on the determined differences between the first and second instances, a set of actions that, when executed, change the entities of the first instance to the entities of the second instance, wherein the set of actions is ordered such that processing order constraints are respected; and an act of incrementally upgrading the entities of the first instance to the entities of the second instance by processing the determined set of actions in the appropriate, constraint-aware order.