IP Library Granted Patent US 9,292,573
Granted Patent B2
US 9,292,573 · App. 12/719,519 · Granted Mar 22, 2016

Extended database engine providing versioning and embedded analytics

Inventors: Robert Nigel Walker (Richmond Hill, CA); Robert Duncan Klett (Ottawa, CA); James Robert Cozman (Ottawa, CA); Mark Shyo Mototsune (Ottawa, CA)
Assignee: Kinaxis Inc.
G06F17/3048
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 9,292,573
App. No.
12/719,519
Granted
Mar 22, 2016
Kind
B2
Abstract

A system for calculating analytics uses a relational database to store inputs, calculates results, and stores them in cache. The system also includes an access layer that provides a unified view of the data in server. A dynamic access layer is generated at runtime to run an analytic to provide a flexible framework for creating business logic.

Claims (19)

1. A method comprising:

storing in a database one or more tables including records with a plurality of fields;

retrieving the records from the database and storing data from the records in a cache in order to perform a calculation, the records being rearranged so that each record has an identifier and at least for one record multiple versions of that record are stored in the cache, the different versions of the record including one or more variations in field values, wherein the records are stored in the database with groups of fields organized into at least two field groups with at least two fields each; and

selectively retrieving from the database and storing in the cache one or more, but not all, field groups on an as-needed basis to perform a calculation.

2. The method of claim 1 , wherein the cache is in a server separate from the database.

3. The method of claim 1 , wherein, for the versions maintained in the cache with one or more of the field groups, to retrieve data in a first field in response to a query, retrieving the field group that includes the first field without retrieving other field groups.

4. The method of claim 1 , further comprising maintaining an inverse field set such that for each value of a field, a set is created of identifiers that may have the same field value.

5. The method of claim 1 , wherein retrieving the records from the database includes storing the data in an input data cache with a record page with an identifier for each record and wherein there is a set of versions for at least some of the records, such that a record with multiple versions has one identifier.

6. The method of claim 5 , further comprising maintaining an inverse set for a plurality of fields, the inverse set including, for each field, a list of identifiers of records that have the same value for that field, including fields in records for which there are multiple versions.

7. A system comprising:

a database having one or more tables including records with a plurality of fields; and

a cache memory for storing data from the records, the data being rearranged so that each record has an identifier and at least one record has multiple versions of that record stored in the cache, the different versions of the record including one or more variations in field values;

wherein the records are stored in the database with groups of fields organized into at least two field groups with at least two fields each, wherein records are selectively retrievable from the database and stored in the cache such that one or more, but not all, field groups are retrievable on an as-needed basis to perform the calculation.

8. The system of claim 7 , wherein the versions are maintained in the cache in field groups, such that in order to retrieve data in a first field in response to a query, the system retrieves the field group that includes the first field without retrieving other field groups.

9. The system of claim 7 , wherein the cache memory has an inverse field set such that for each value of a field, a set is created of all identifiers that may have that field value.

10. The system of claim 7 , wherein the data is stored in an input data cache with a record page with a list of identifiers such that each identifier identifies a record, and sets of versions are each associated with a single identifier.

11. The system of claim 10 , wherein the cache memory has an inverse set for a plurality of fields, the inverse set including the field and a list of identifiers of records that have the same value for that field.

12. The system of claim 7 , wherein the cache memory is in a server separate from a database system that has the database tables.

13. The system of claim 7 , wherein the cache memory is in a database system that has the database tables.

Assignments (5)
CHANGE OF NAME Recorded Jan 20, 2022
From: WEBPLAN INC.
To: KINAXIS INC.
Reel/Frame 058785/0600 →
CERTIFICATE OF AMALGAMATION Recorded Jan 20, 2022
From: KINAXIS HOLDINGS INC.
To: KINAXIS INC.
Reel/Frame 058785/0669 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2011
From: WALKER, ROBERT NIGEL; KLETT, ROBERT DUNCAN; CROZMAN, JAMES ROBERT; MOTOTSUNE, MARK SHYO
To: WEBPLAN INC.
Reel/Frame 025738/0709 →
CHANGE OF NAME Recorded Feb 3, 2011
From: WEBPLAN CORP.
To: KINAXIS CORP.
Reel/Frame 025738/0813 →
CHANGE OF NAME Recorded Feb 3, 2011
From: KINAXIS INC.
To: KINAXIS HOLDINGS INC.
Reel/Frame 025738/0863 →
Continuity (3)
Continuation 10830690 · Apr 23, 2004
Provisional Application 60530956 · Dec 19, 2003
Related Publication 20100223430A1 · Sep 2, 2010