IP Library Granted Patent US 10,055,421
Granted Patent B1
US 10,055,421 · App. 15/488,315 · Granted Aug 21, 2018

Pre-execution query optimization

Inventors: Nirav Patel (Santa Clara, CA); Gowri Shankar Ravindran (Cupertino, CA)
Assignee: XACTLY CORPORATION
G06F17/30153G06F17/30312G06F17/30442G06F17/30445G06F17/30463G06F17/30469
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 10,055,421
App. No.
15/488,315
Granted
Aug 21, 2018
Kind
B1
Abstract

A data processing method comprises using an application server computer of an application service provider (ASP), establishing computerized shared multi-tenant data storage in which tenant data that is associated with a plurality of different tenants of the ASP is stored together in a first database associated with a distributed computation system that is separate from the application server computer, receiving an analytics request, determining, based on at least one attribute of the analytics request, the application server computer will process at least the analytics request, sending, to the distributed computation system, a first query for data needed by the analytics request, receiving, from the distributed computation system, an interim result set of data resulting from processing the first query against the first database, processing, by the application server computer, the interim result set of data for the analytics request to generate and digitally store a first result set.

Claims (53)

1. A data processing method comprising:

using an application server computer of an application service provider (ASP), establishing computerized shared multi-tenant data storage in which tenant data that is associated with a plurality of different tenants of the ASP is stored together in a first database associated with a distributed computation system that is separate from the application server computer;

receiving, by the application server computer and from a tenant computer that is associated with a tenant of the plurality of different tenants, an analytics request;

determining, based on at least one attribute of the analytics request and by the application server computer, whether the application server computer will process at least a portion of the analytics request to generate a first result set for the analytics request or whether the distributed computation system will process at least a portion of the analytics request to generate the first result set for the analytics request;

in response to determining the application server computer will process at least the portion:

sending, by the application server computer and to the distributed computation system, a first query for data needed by the analytics request;

receiving, by the application server computer and from the distributed computation system, an interim result set of data resulting from processing the first query against the first database, wherein the interim result set comprises unprocessed data from the first database;

processing, by the application server computer, the interim result set of data for the analytics request to generate and digitally store the first result set.

2. The method of claim 1 , wherein the at least one attribute is a timeframe, a type of calculation, or both.

3. The method of claim 1 , wherein the at least one attribute is a timeframe of three months.

4. The method of claim 1 , further comprising:

determining, based on at least one attribute of the analytics request, the distributed computation system will process the analytics request;

in response to determining the distributed computation system will process the analytics request:

sending, to the distributed computation system, a second query for data needed by the analytics request, wherein the distributed computation system processes the data for the analytics request to generate a second result set;

receiving, from the distributed computation system, the second result set.

5. The method of claim 1 , further comprising:

determining, based on at least one attribute of the analytics request, the distributed computation system will process a first portion of the analytics request and the application server computer will process a second portion of the analytics request;

in response to determining:

sending, to the distributed computation system, a third query for data needed by the analytics request, wherein the distributed computation system processes data for the first portion of the analytics request to generate a third result set;

receiving, from the distributed computation system, the third result set and a second interim result set of data resulting from processing the third query against the first database;

processing, by the application server computer, the second interim result set of data for the analytics request to generate and digitally store a fourth result set.

6. The method of claim 1 , wherein determining the application server computer will process at least the portion is based on the analytics request specifying a summation calculation, an average calculation, a minimum calculation, or a maximum calculation.

7. The method of claim 1 , further comprising:

receiving the interim result set of data needed by the analytics request at the application server computer in a compressed format;

decompressing, during the processing, the interim result set of data needed by the analytics request.

8. The method of claim 1 , wherein the first database is a columnar database, and wherein the tenant data is compensation data.

9. A system comprising:

one or more application server computers communicatively connected to a distributed computation system, the one or more application server computers comprising one or more processors and electronic digital memory storing one or more sequences of instructions which, when executed by the one or more processors, cause the one or more processors to perform:

establishing computerized shared multi-tenant data storage in which tenant data that is associated with a plurality of different tenants of the ASP is stored together in a first database associated with the distributed computation system that is separate from the application server computer;

receiving, from a tenant computer that is associated with a tenant of the plurality of different tenants, an analytics request;

determining, based on at least one attribute of the analytics request, whether the one or more application server computers will process at least a portion of the analytics request to generate a first result set for the analytics request or whether the distributed computation system will process at least a portion of the analytics request to generate the first result set for the analytics request;

in response to determining the application server computer will process at least the portion:

sending, to the distributed computation system, a first query for data needed by the analytics request;

receiving, from the distributed computation system, an interim result set of data resulting from processing the first query against the first database, wherein the interim result set comprises unprocessed data from the first database;

processing, the interim result set of data for the analytics request to generate and digitally store the first result set.

10. The system of claim 9 , wherein the at least one attribute is a timeframe, a type of calculation, or both.

11. The system of claim 9 , wherein the at least one attribute is a timeframe of three months.

12. The system of claim 9 , further comprising:

determining, based on at least one attribute of the analytics request, the distributed computation system will process the analytics request;

in response to determining the distributed computation system will process the analytics request:

sending, to the distributed computation system, a second query for data needed by the analytics request, wherein the distributed computation system processes the data for the analytics request to generate a second result set;

receiving, from the distributed computation system, the second result set.

13. The system of claim 9 , further comprising:

determining, based on at least one attribute of the analytics request, the distributed computation system will process a first portion of the analytics request and the application server computer will process a second portion of the analytics request;

in response to determining:

sending, to the distributed computation system, a third query for data needed by the analytics request, wherein the distributed computation system processes data for the first portion of the analytics request to generate a third result set;

receiving, from the distributed computation system, the third result set and a second interim result set of data resulting from processing the third query against the first database;

processing, by the application server computer, the second interim result set of data for the analytics request to generate and digitally store a fourth result set.

14. The system of claim 9 , wherein determining the application server computer will process at least the portion is based on the analytics request specifying a summation calculation, an average calculation, a minimum calculation, or a maximum calculation.

15. The system of claim 9 , further comprising:

receiving the interim result set of data needed by the analytics request at the application server computer in a compressed format;

decompressing, during the processing, the interim result set of data needed by the analytics request.

16. The system of claim 9 , wherein the first database is a columnar database, and wherein the tenant data is compensation data.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2018
From: RAVINDRAN, GOWRI SHANKAR
To: XACTLY CORPORATION
Reel/Frame 045866/0047 →
SECURITY INTEREST Recorded Aug 30, 2017
From: XACTLY CORPORATION
To: GOLDMAN SACHS MIDDLE MARKET LENDING CORP.
Reel/Frame 043441/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2017
From: PATEL, NIRAV
To: XACTLY CORPORATION
Reel/Frame 042017/0833 →