IP Library Granted Patent US 7,809,735
Granted Patent B2
US 7,809,735 · App. 11/548,640 · Granted Oct 5, 2010

Infrastructure for more efficient processing to generate of ad-hoc reports

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,809,735
App. No.
11/548,640
Granted
Oct 5, 2010
Kind
B2
Abstract

Reports, based on aggregation operations on data in a data warehouse, may be efficiently generated. At least two separate aggregation processes are performed on facts of a fact table. Each of a plurality of aggregation processors accesses a separate partition of the facts of the fact table. Each aggregation processor applies the at least two separate aggregation processes are applied to the partition of the facts accessed by that aggregation processor and, for each of the at least two separate aggregation processes, an intermediate result of applying that separate aggregation process by that aggregation processor is saved. For each of the at least two separate aggregation processes, the intermediate results, of applying the aggregation processing for that process by the aggregation processors, are merged.

Claims (51)

1. A method, comprising:

by each of a plurality of aggregation processors,

accessing a separate partition of facts of a fact table;

applying at least two separate aggregation processes to the partition of the facts accessed by that aggregation processor, wherein the at least two separate aggregation processes applied to the partition of the facts accessed by that aggregation processor are the same at least two separate aggregation processes being applied by the each of the other aggregation processors to the partition of facts accessed by that other aggregation processor; and

for each of the at least two separate aggregation processes, saving an intermediate result of applying that separate aggregation process by that aggregation processor;

for each of the at least two separate aggregation processes, merging the intermediate results, of applying the aggregation processing for that process by the aggregation processors,

wherein, for each of the at least two separate aggregation processes, the intermediate result of applying that separate aggregation process includes a distillation of the facts of the partition of facts to which that aggregation process is applied, into an aggregate value that represents an aggregate of the facts of the partition of facts.

2. The method of claim 1 , wherein:

the step of saving an intermediate result, of applying that separate aggregation process by that aggregation processor, includes providing the intermediate result as a sorted intermediate result.

3. The method of claim 1 , wherein:

accessing a separate partition of the facts of the fact table includes streaming the facts of the separate partition from a data warehouse to that computing device.

4. The method of claim 3 , further comprising:

by at least some of the separate aggregation processes, buffering at least some of the accessed separate partition of the facts of the fact table.

5. The method of claim 1 , wherein:

the step of merging the intermediate results for a particular one of the at least two separate aggregation processes includes performing further aggregation processing with respect to those intermediate results.

6. The method of claim 1 , further comprising:

initially preparing the aggregation processes in view of desired ad hoc report queries.

7. The method of claim 1 , wherein:

the facts of the fact table are contained in records of the fact table, and

the records of the fact table each represent a transaction of a user with respect to an online property.

8. A computing system, comprising:

a plurality of aggregation processors, each of the aggregation processors configured to:

access a separate partition of facts of a fact table;

apply at least two separate aggregation processes to the partition of the facts accessed by that aggregation processor, wherein the at least two separate aggregation processes applied to the partition of the facts accessed by that aggregation processor are the same at least two separate aggregation processes being applied by the each of the other aggregation processors to the partition of facts accessed by that other aggregation processor; and

for each of the at least two separate aggregation processes, save an intermediate result of applying that separate aggregation process by that aggregation processor;

for each of the at least two separate aggregation processes, a merging processor configured to merge the intermediate results of applying the aggregation processing for that process by the aggregation processors,

wherein, for each of the at least two separate aggregation processes, the intermediate result of applying that separate aggregation process includes a distillation of the facts of the partition of facts to which that aggregation process is applied, into an aggregate value that represents an aggregate of the facts of the partition of facts.

9. The computing system of claim 8 , wherein:

each of the aggregation processors configured to save an intermediate result, of applying that separate aggregation process by that aggregation processor, includes each of the aggregation processors being configured to provide the intermediate result as a sorted intermediate result.

10. The computing system of claim 8 , wherein:

each of the aggregation processors configured to save access a separate partition of the facts of the fact table includes each of the aggregation processors configured to stream the facts of the separate partition from a data warehouse to that aggregation processor.

11. The computing system of claim 10 , wherein:

the aggregation processors are configured to operate such that at least some of the separate aggregation processes cause at least some of the accessed separate partition of the facts of the fact table to be buffered.

12. The computing system of claim 8 , wherein:

the merging processor is configured to merge the intermediate results for a particular one of the at least two separate aggregation processes including being configured to perform further aggregation processing with respect to those intermediate results.

13. The computing system of claim 8 , wherein:

the aggregation processes correspond to desired ad hoc report queries.

14. The computing system of claim 8 , wherein:

the facts of the fact table are contained in records of the fact table, and

the records of the fact table each represent a transaction of a user with respect to an online property.

15. The method of claim 1 , wherein each of the at least two separate aggregation processes corresponds to a separate one of two or more report queries.

16. The method of claim 15 , wherein merging is performed by at least one merging processor, thereby enabling the merging processor to generate reports based upon the report queries.

17. The method of claim 16 , further comprising:

making at least one business decision regarding operation of the enterprise based at least in part on the generated reports.

18. An apparatus, comprising:

a processor; and

a memory, at least one of the processor or the memory being adapted for:

accessing only one of a plurality of partitions of facts of a fact table;

applying at least two separate aggregation processes to the partition of the facts accessed by the processor, wherein the at least two separate aggregation processes applied to the partition of the facts accessed by the processor are the same at least two separate aggregation processes being applied by each of one or more other processors to the remaining partitions of the plurality of partitions of facts, wherein each of the one or more other processors accesses a different one of the remaining partitions of the plurality of partitions of facts; and

for each of the at least two separate aggregation processes, saving an intermediate result of applying that separate aggregation process by the processor;

wherein, for each of the at least two separate aggregation processes, the intermediate result of applying that separate aggregation process includes a distillation of the facts of the partition of facts to which that aggregation process is applied, into an aggregate value that represents an aggregate of the facts of the partition of facts.

Assignments (15)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2021
From: EXCALIBUR IP, LLC
To: TWITTER, INC.
Reel/Frame 057010/0910 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2006
From: BARUA, ANKUR
To: YAHOO! INC.
Reel/Frame 018383/0114 →