IP Library Granted Patent US 8,909,680
Granted Patent B1
US 8,909,680 · App. 13/269,560 · Granted Dec 9, 2014

Intelligent caching of multidimensional cube data

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 8,909,680
App. No.
13/269,560
Granted
Dec 9, 2014
Kind
B1
Abstract

Some embodiments provide a method for rendering a cube view related to a cube stored in a multidimensional data storage. The method identifies a first portion of cube data that is stored in a cube cache and a second portion of the cube data that is not stored in the cube cache. Based on the identifications, the method retrieves the second data portion of the cube data by accessing the cube data storage. The method renders the cube view for display by using the first portion from the cube cache and the second portion retrieved from the multidimensional data storage.

Claims (41)

1. A method of rendering a cube view related to a cube stored in a multi-dimensional data storage, the method comprising:

receiving a cube definition comprising a plurality of dimension members associated with the cube stored in the multi-dimensional data storage;

receiving a specification for a cube configuration that includes a set of dimension members from the cube definition;

displaying the cube view as an interactive matrix having rows and columns that represent two different dimensions, each dimension including a set of dimension members, wherein the interactive matrix further includes a group of cells that represent measures of the cube, each cell at an intersection of a column and a row representing a measure at the corresponding intersection of dimension members, each measure being displayed according to the measure's matching data value stored in a cube cache;

receiving an input on the interactive matrix to display a set of additional data values regarding a dimension member, the input causing the interactive matrix to be associated with a set of empty cells for the set of additional data values;

for each empty cell, analyzing the cube cache (i) to find a matching data value in the cube cache, and (ii) to add the empty cell to a cell queue if a matching data value is not stored in the cube cache;

dynamically generating a set of queries for any empty cells in the cell queue by (i) evaluating, for each empty cell in the cell queue, the cube configuration and (ii) constructing the set of queries based on one or more of the sets of dimension members specified in the cube configuration;

storing each data value returned as a result of performing the set of queries on the multi-dimensional data storage in the cube cache; and

updating the interactive matrix by populating the set of empty cells with a set of matching data values from the cube cache.

2. The method of claim 1 , wherein the cube cache is further analyzed to populate the empty cell with the matching data value from the cube cache if the matching data value is stored in the cube cache.

3. The method of claim 2 , wherein updating the cube view comprises using each matching data value in the cube cache if the matching data is stored in the cube cache.

4. The method of claim 1 , wherein receiving the specification further comprises input of the measures relating to the set of dimension members.

5. The method of claim 1 , wherein the cube configuration specifies a plurality of axes that includes a first axes for one set of dimension members that represent a set of rows of the interactive matrix, and a second axes for another set of dimension members that represent a set of columns of the interactive matrix, wherein the cube configuration further specifies the measures, and a set of filters for filtering the interactive matrix.

6. The method of claim 1 , wherein the input is a user input to perform an expansion operation on the interactive matrix, wherein the analysis of the cube cache is initiated by the input to perform the expansion operation.

7. A non-transitory machine readable medium storing a program for rendering a cube view related to a cube stored in a multi-dimensional data storage, the program for execution by at least one processor, the program comprising sets of instructions for:

receiving a cube definition comprising a plurality of dimension members associated with the cube stored in the multi-dimensional data storage;

receiving a specification for a cube configuration that includes a set of dimension members from the cube definition;

displaying the cube view as an interactive matrix having rows and columns that represent two different dimensions, each dimension including a set of dimension members, wherein the interactive matrix further includes a group of cells that represent measures of the cube, each cell at an intersection of a column and a row representing a measure at the corresponding intersection of dimension members, each measure being displayed according to the measure's matching data value stored in a cube cache;

receiving an input on the interactive matrix to display a set of additional data values regarding a dimension member, the input causing the interactive matrix to be associated with a set of empty cells for the set of additional data values;

for each empty cell, analyzing the cube cache (i) to find a matching data value in the cube cache, and (ii) to add the empty cell to a cell queue if a matching data value is not stored in the cube cache;

dynamically generating a set of queries for any empty cells in the cell queue by (i) evaluating, for each empty cell in the cell queue, the cube configuration and (ii) constructing the set of queries based on one or more of the sets of dimension members specified in the cube configuration;

storing each data value returned as a result of performing the set of queries on the multi-dimensional data storage in the cube cache; and

updating the interactive matrix by populating the set of empty cells with a set of matching data values from the cube cache.

8. The non-transitory machine readable medium of claim 7 , wherein the cube cache is further analyzed to populate the empty cell with the matching data value from the cube cache if the matching data value is stored in the cube cache.

9. The non-transitory machine readable medium of claim 7 , wherein the set of instructions for receiving the specification further comprises a set of instructions for receiving input of the measures relating to the set of dimension members.

10. A non-transitory machine readable medium storing a cube viewer that when executed by at least one processing unit renders a cube view related to a cube stored in a multi-dimensional data storage, the cube viewer comprising:

a cube definition manager for receiving a cube definition comprising a plurality of dimension members associated with the cube stored in the multi-dimensional data storage;

a cube configuration manager for receiving a specification for a cube configuration that includes a set of dimension members from the cube definition;

a cube rendering engine for rendering the cube view as an interactive matrix having rows and columns that represent two different dimensions, each dimension including a set of dimension members, wherein the interactive matrix further includes a group of cells that represent measures of the cube, each cell at an intersection of a column and a row representing a measure at the corresponding intersection of dimension members, each measure being displayed according to the measure's matching data value stored in a cube cache;

a set of user interface items for receiving an input on the interactive matrix to display a set of additional data values regarding a dimension member, the input causing the interactive matrix to be associated with a set of empty cells for the set of additional data values;

a cache manager for analyzing, for each empty cell, the cube cache (i) to find a matching data value in the cube cache, and (ii) to add the empty cell to a cell queue if a matching data value is not stored in the cube cache;

a query generator for dynamically generating a set of queries for any empty cells in the cell queue by (i) evaluating, for each empty cell in the cell queue, the cube configuration and (ii) constructing the set of queries based on one or more of the sets of dimension members specified in the cube configuration; and

a data retriever for storing each data value returned as a result of performing the set of queries on the multi-dimensional data storage in the cube cache, wherein the cube rendering engine updates the interactive matrix by populating the set of empty cells with a set of matching data values from the cube cache.

11. The non-transitory machine readable medium of claim 10 , wherein the cube cache is further analyzed to populate the empty cell with the matching data value from the cube cache if the matching data value is stored in the cube cache.

12. The non-transitory machine readable medium of claim 11 , wherein the data retriever retrieves each data value via a cube database interface that includes a cube query handler for processing each query in the set of queries.

13. The non-transitory machine readable medium of claim 10 , wherein receiving the specification further comprises receiving input of the measures relating to the set of dimension members.

14. The non-transitory machine readable medium of claim 10 , wherein the cube definition manager receives the cube definition via a cube database interface that includes a cube definition handler for processing cube definition requests.

15. The non-transitory machine readable medium of claim 10 , wherein the cube configuration specifies a plurality of axes that includes a first axes for one set of dimension members that represent a set of rows of the interactive matrix, and a second axes for another set of dimension members that represent a set of columns of the interactive matrix, wherein the cube configuration further specifies the measures, and a set of filters for filtering the interactive matrix.

16. The non-transitory machine readable medium of claim 10 , wherein a cube view rendering engine renders the cube view based on the configuration and all or some of the data values stored in the cube cache.

17. The non-transitory machine readable medium of claim 10 , wherein the cube cache is a cache data structure file that contains data values retrieved from the multi-dimensional data storage.

18. The non-transitory machine readable medium of claim 10 , wherein the program further comprises a set of instructions for asynchronously executing the set of queries to retrieve each data value for each empty cell in the cell queue from the multi-dimensional data storage.

Assignments (5)
MERGER Recorded Jan 24, 2020
From: BAY DYNAMICS, INC.
To: CA, INC.
Reel/Frame 051693/0111 →
RELEASE OF SECURITY INTEREST Recorded Dec 20, 2019
From: COMERICA BANK
To: BAY DYNAMICS, INC.
Reel/Frame 051348/0985 →
SECURITY INTEREST Recorded Apr 19, 2018
From: BAY DYNAMICS, INC.
To: COMERICA BANK
Reel/Frame 045593/0962 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 033042 FRAME: 0431. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 27, 2016
From: STOLTE, RYAN G.; RIFAI, FIRAS S.
To: BAY DYNAMICS, INC.
Reel/Frame 038542/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2014
From: STOLTE, RYAN G.; RIFAI, FIRAS S.
To: BAY DYNAMICS
Reel/Frame 033042/0431 →