Extended database engine providing versioning and embedded analytics
First Claim
Patent Images
1. A method implemented in a system that includes a database for storing input data and a server, the method comprising:
- the server managing multiple versions of the input data, wherein each version of the input data is stored as a record in the database with each record having an identifier and a version field;
the server receiving a query for data;
in response to the query, identifying whether the requested data is available in a cache;
if the requested data is not available in the cache, identifying an analytic to calculate data from input data;
retrieving from a database input data associated with the analytic and storing the input data in the cache, if not already present in the cache, wherein the input data are stored in the cache in one or more pages of records with a list of identifiers and a set of versions for each identifier, wherein at least one record has multiple versions;
using the analytic to perform calculations with the analytic on the records of input data determined to have the correct version related to the query to produce calculated data, wherein multiple versions of a record are based on multiple plans, and wherein the query is associated with a plan and the correct version of a record is determined based on the plan with which the query is associated;
storing the calculated data into the cache; and
downloading a schema which is used to generate a data access layer, the data access layer exposing tables in the database as classes with properties corresponding to fields in the tables, and in response to changes made to the schema, automatically regenerating the access layer.
5 Assignments
0 Petitions
Accused Products
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.
-
Citations
32 Claims
-
1. A method implemented in a system that includes a database for storing input data and a server, the method comprising:
-
the server managing multiple versions of the input data, wherein each version of the input data is stored as a record in the database with each record having an identifier and a version field; the server receiving a query for data; in response to the query, identifying whether the requested data is available in a cache; if the requested data is not available in the cache, identifying an analytic to calculate data from input data; retrieving from a database input data associated with the analytic and storing the input data in the cache, if not already present in the cache, wherein the input data are stored in the cache in one or more pages of records with a list of identifiers and a set of versions for each identifier, wherein at least one record has multiple versions; using the analytic to perform calculations with the analytic on the records of input data determined to have the correct version related to the query to produce calculated data, wherein multiple versions of a record are based on multiple plans, and wherein the query is associated with a plan and the correct version of a record is determined based on the plan with which the query is associated; storing the calculated data into the cache; and downloading a schema which is used to generate a data access layer, the data access layer exposing tables in the database as classes with properties corresponding to fields in the tables, and in response to changes made to the schema, automatically regenerating the access layer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for calculating analytics comprising:
-
a database for storing data, at least some of which data is for use by analytics to produce calculated results in response to queries; a server having a cache and responsive to a query for input data or calculated data for managing multiple versions of the input data, wherein each version of the input data is stored as a record in the database with each record having an identifier and a version number indicating with which of one or more versions the data the record is associated, wherein the input data are stored in the cache in one or more pages of records with a list of identifiers and a set of versions for each identifier, wherein at least one record has multiple versions wherein multiple versions of a record are based on multiple plans, and wherein the query is associated with a plan and a correct version of a record is determined based on the plan with which the query is associated, identifying whether the requested data is available in a cache, if the requested data is not available in the cache, identifying an analytic to produce a response, retrieving input data associated with the analytic from the database and storing the input data in the cache if not already present in the cache, performing calculations with the analytic on the records of input data determined to have the correct version related to the query to produce calculated data, storing the calculated data into the cache without storing the calculated data in the database; and downloading a schema which is used to generate a data access layer, the data access layer exposing tables in the database as classes with properties corresponding to fields in the tables, and in response to changes made to the schema, automatically regenerating the access layer. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification