Dynamic optimization of data aggregation

US9256641B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9256641-B1
Application numberUS-201314057074-A
CountryUS
Kind codeB1
Filing dateOct 18, 2013
Priority dateOct 18, 2013
Publication dateFeb 9, 2016
Grant dateFeb 9, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method includes receiving a first database query, in which the first database query requests particular data associated with a first object that is stored on a data source. The method also includes determining whether the first database query includes an aggregation function. The method also includes sending an instruction to generate current aggregate data based on the aggregation function to the data source in response to determining that the first database query includes the aggregation function, in which the current aggregate data corresponds to the particular data. The data source is configured to generate the current aggregate data in response to receiving the instruction. The method includes generating a second database query based on the first database query, in which the second database query requests the current aggregate data. The method also includes retrieving the current aggregate data using the second database query and providing the current aggregate data.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving a first database query, the first database query requesting particular data associated with a first object, the first object stored on a data source; determining whether the first database query comprises an aggregation; sending an instruction to generate current aggregate data based on the aggregation to the data source in response to determining that the first database query comprises the aggregation, wherein: the instruction to generate the current aggregate data is generated based on the aggregation, the current aggregate data corresponds to the particular data, the data source is configured to generate the current aggregate data in response to receiving the instruction to generate the current aggregate data; generating a second database query based on the first database query in response to sending the instruction to generate the current aggregate data, the second database query requesting the current aggregate data; retrieving the current aggregate data using the second database query in response to generating the second database query; providing the current aggregate data in response to retrieving the current aggregate data; and issuing the first query in response to determining that the first database query does not comprise the aggregation. 2. The method of claim 1 , wherein the current aggregate data is located in a second object, the second object stored on the data source, wherein the data source is further configured to generate the second object. 3. The method of claim 1 , further comprising: obtaining a description of the first object in response to determining that the first database query comprises the aggregation; and determining whether the first object comprises a predetermined amount of data based on the description of the first object, wherein sending the instruction to generate the current aggregate data comprises sending the instruction to generate the current aggregate data to the data source in response to determining that the first object comprises the predetermined amount of data, wherein issuing the first query comprises issuing the first query in response to determining that the first object does not comprise the predetermined amount of data. 4. The method of claim 1 , further comprising: periodically sending an instruction to generate periodic aggregate data based on the aggregation to the data source, the periodic aggregate data corresponding to the particular data and the data source configured to, in response to receiving each instruction to generate the periodic aggregate data: destroy the periodic aggregate data that was previously generated; and regenerate the periodic aggregate data; and determining whether to provide the periodic aggregate data in response to determining that the first database query comprises the aggregation; generating a third database query based on the first database query in response to determining to provide the periodic aggregate data, the third database query requesting the periodic aggregate data; retrieving the periodic aggregate data using the third database query in response to generating the third database query; and providing the periodic aggregate data in response to retrieving the periodic aggregate data, wherein sending the instruction to generate current aggregate data comprises sending the instruction to generate current aggregate data in response to determining to not provide the periodic aggregate data. 5. The method of claim 1 , further comprising: mapping the current aggregate data to a column identified in the first database query in response to retrieving the current aggregate data, the column corresponding to the particular data, wherein providing the current aggregate data comprises providing the current aggregate data based on the mapping. 6. The method of claim 1 , wherein retrieving the current aggregate data using the second database query comprises: converting the second database query into a format supported by the data source; sending the second database query in the format to the data source; and receiving the current aggregate data from the data source. 7. The method of claim 1 , wherein the aggregation corresponds to an aggregation function, the aggregation function comprising one of: a count function, a maximum function, a minimum function, a first value function, a last value function, and a sum function. 8. A system comprising: a first receiving device configured to receive a first database query, the first database query requesting particular data associated with a first object, the first object stored on a data source; a first determining device configured to determine whether the first database query comprises an aggregation; a first sending device configured to send an instruction to generate current aggregate data based on the aggregation to the data source in response to determining that the first database query comprises the aggregation, wherein: the instruction to generate the current aggregate data is generated based on the aggregation, the current aggregate data corresponds to the particular data, the data source is configured to generate the current aggregate data in response to receiving the instruction to generate the current aggregate data; a first generating device configured to generate a second database query based on the first database query in response to sending the instruction to generate the current aggregate data, the second database query requesting the current aggregate data; a first retrieving device configured to retrieve the current aggregate data using the second database query in response to generating the second database query; a first providing device configured to provide the current aggregate data in response to retrieving the current aggregate data; and a standard issuing device configured to issue the first query in response to determining that the first database query does not comprise the aggregation. 9. The system according to claim 8 , wherein the current aggregate data is located in a second object, the second object stored on the data source, wherein the data source is further configured to generate the second object. 10. The system of claim 8 , further comprising: an obtaining device configured to obtain a description of the first object in response to determining that the first database query comprises the aggregation; and a second determining device configured to determine whether the first object comprises a predetermined amount of data based on the description of the first object, wherein the first sending device is configured to send the instruction to generate the current aggregate data to the data source in response to determining that the first object comprises the predetermined amount of data, wherein the standard issuing device is configured to issue the first query in response to determining that the first object does not comprise the predetermined amount of data. 11. The system of claim 8 , further comprising: a second sending device configured to periodically send an instruction to generate periodic aggregate data based on the aggregation to the data source, the periodic aggregate data corresponding to the particular data and the data source configured to, in response to receiving each instruction to generate the periodic aggregate data: destroy the periodic aggregate data that was previously generated; and regenerate the periodic aggregate data; and a third determining device configured to determine whether to provide the periodic aggregate data in response to determining that the first database query comprises the aggrega

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9256641B1 cover?
A method includes receiving a first database query, in which the first database query requests particular data associated with a first object that is stored on a data source. The method also includes determining whether the first database query includes an aggregation function. The method also includes sending an instruction to generate current aggregate data based on the aggregation function t…
Who is the assignee on this patent?
Zlatnik Pavel, Ca Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/2453. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 09 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).