Browse Prior Art Database

Method for Batch Updates of Aggregate Objects

IP.com Disclosure Number: IPCOM000119188D
Original Publication Date: 1997-Dec-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 3 page(s) / 101K

Publishing Venue

IBM

Related People

Gilgen, DB: AUTHOR [+2]

Abstract

Disclosed is a programming algorithm that allows status updates of real objects in an object oriented system to be bundled and applied as a group to the aggregate objects in that system that represent them, rather than being applied immediately to those aggregate objects, resulting in greatly improved performance in a system where status aggregation is used heavily.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Method for Batch Updates of Aggregate Objects

      Disclosed is a programming algorithm that allows status updates
of real objects in an object oriented system to be bundled and
applied as a group to the aggregate objects in that system that
represent them,  rather than being applied immediately to those
aggregate objects, resulting in greatly improved performance in a
system where status aggregation is used heavily.

      The Figure illustrates a simple form of an object status
aggregation hierarchy in which this algorithm would apply, where the
status of the "REALxx" object aggregates up to the "AGGxx" objects as
indicated by the arrows.

      Two new attributes are created on each real object in the
system; one for indicating that the object has had a change in status
since the last time its status was aggregated up its aggregate parent
chain, and another to store what the status was the last time that
its status was aggregated up its aggregate parent chain.

      When the status of a real resource changes, a change method on
the status attribute of that resource is triggered.  That method will
first check to see if the new status for this resource is the same as
it was the last time status was aggregated up and, if so, will make
sure that the indicator that indicates that this object has had a
status change is off.  If the new status is different than the last
status that was aggregated up, the method will turn on the status
change indicator.

      At some later time (based on timer, some number of updates,
etc.), a batch aggregation method can be kicked off.  This method
would first query the system for all of the real objects that had the
status change indicator set on.  It would then proceed to query each
of those objects, querying the last aggregated status and the current
status values of each, as well as the aggregation parents of each.
As each object is queried, the method will build/update a table of
all of  the affected aggregate objects which contains counters of the
number of  each type of status change (such as satisfactory,
unsatisfactory, and unknown) for each aggregate.  The method will
also turn off the status  change indicator for each real object as it
processes them and will set  the last aggregated status value to the
current status value.  After all real objects are processed, the
method will trigger the status aggregation method for each affected
aggregate listed in its table, providing to it the counts of all of
the changes for that aggregate rather than a single update at a time.
As each aggregate object completes it's batch update, it can in turn
trigger the status aggregation method for its aggregate parent (if
any), providing the real  object status counters it h...