EP1519283A2

Self-maintaining real-time data aggregation

Abstract

Multiple aggregation groups, which can be multiple partitions in an aggregated data table, are formed. Each group includes multiple aggregation records; each aggregation record includes an aggregation of values contained by a different subset of multiple database records. While an aggregation group is accessed by a single program thread during an aggregation group update transaction, no other threads are allowed to access that group. The aggregation groups are combined into a single table of aggregation records. Each of the multiple database records may correspond to an instance of an organizational activity and include a field having a value indicating the corresponding instance to be in one of several process states. Each aggregation group may further include time-sorted aggregation records, each time-sorted aggregation record containing an aggregation value for instances in one of the several process states during a time period associated with the time-sorted aggregation record. Aggregation records corresponding to instances completed outside of a preselected time window are deleted.

EP1519283A2, drawing sheet 1
Sheet 1 of 13

Term

Term ended

Projected expiry passed 14 July 2024, 2.2 years ago.

  1. Priority and filed
  2. Published
  3. Projected expiry
  4. Today

44 claims: 6 independent, 38 dependent

  1. 1
    A method for maintaining aggregations of values contained by fields of multiple database records, comprising:creating multiple aggregation groups, each group including a plurality of aggregation records, each aggregation record including a value for an aggregation of values contained by fields of a distinct subset of the multiple database records;selecting a first aggregation group upon insertion or update of a first of the multiple database records;revising, based on one or more values within the inserted or updated first database record and as part of a first aggregation group update transaction, the aggregation value of one of the aggregation records of the first aggregation group;preventing subsequent selection of the first aggregation group until the first aggregation group update transaction is completed;selecting, while the first aggregation group update transaction is being performed and upon insertion or update of a second of the multiple database records, a second aggregation group;and revising, based on one or more values within the inserted or updated second database record and during the first aggregation group update transaction, the aggregation value of one of the aggregation records of the second aggregation group.
  2. 12
    A method for maintaining aggregated data regarding multiple instances of an organizational activity, each instance of the activity having one of a plurality of process states, comprising:creating a plurality of records in an aggregated data table, each record containing an aggregated value for a subset of the multiple instances in the same process state during the same time period;and updating the aggregated data table to reflect deletion of data corresponding to instances in one of the process states outside of a preselected time window.
  3. 18
    A computer-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps comprising:creating multiple aggregation groups, each group including a plurality of aggregation records, each aggregation record including a value for an aggregation of values contained by fields of a distinct subset of multiple database records;selecting a first aggregation group upon insertion or update of a first of the multiple database records;revising, based on one or more values within the inserted or updated first database record and as part of a first aggregation group update transaction, the aggregation value of one of the aggregation records of the first aggregation group;preventing subsequent selection of the first aggregation group until the first aggregation group update transaction is completed;selecting, while the first aggregation group update transaction is being performed and upon insertion or update of a second of the multiple database records, a second aggregation group;and revising, based on one or more values within the inserted or updated second database record and during the first aggregation group update transaction, the aggregation value of one of the aggregation records of the second aggregation group.
  4. 28
    A computer-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps comprising:creating a plurality of records in an aggregated data table, each record containing an aggregated value for a subset of multiple instances of an organizational activity, each instance of the activity having one of a plurality of process states, each instance in a subset being in the same process state during the same time period;and updating the aggregated data table to reflect deletion of data corresponding to instances in one of the process states outside of a preselected time window.
  5. 34
    A data processing apparatus for maintaining aggregations of values contained by fields of multiple database records, comprising:at least one data storage device;at least one user input device;and a processor operatively connected to said storage device and said user input device, wherein the at least one data storage device has stored thereon a set of instructions which, when executed, configure said processor to: create multiple aggregation groups, each group including a plurality of aggregation records, each aggregation record including a value for an aggregation of values contained by fields of a distinct subset of multiple database records, select a first aggregation group upon insertion or update of a first of the multiple database records, revise, based on one or more values within the inserted or updated first database record and as part of a first aggregation group update transaction, the aggregation value of one of the aggregation records of the first aggregation group, prevent subsequent selection of the first aggregation group until the first aggregation group update transaction is completed, select, while the first aggregation group update transaction is being performed and upon insertion or update of a second of the multiple database records, a second aggregation group, and revise, based on one or more values within the inserted or updated second database record and during the first aggregation group update transaction, the aggregation value of one of the aggregation records of the second aggregation group.
  6. 39
    A data processing apparatus for maintaining aggregated data regarding multiple instances of an organizational activity, each instance of the activity having one of a plurality of process states, comprising:at least one data storage device;at least one user input device;and a processor operatively connected to said storage device and said user input device, wherein the at least one data storage device has stored thereon a set of instructions which, when executed, configure said processor to: create a plurality of records in an aggregated data table, each record containing an aggregated value for a subset of the multiple instances in the same process state during the same time period, and update the aggregated data table to reflect deletion of data corresponding to instances in one of the process states outside of a preselected time window.