IP Library Granted Patent US 11,886,912
Granted Patent B2
US 11,886,912 · App. 17/162,675 · Granted Jan 30, 2024

Multi substrate public cloud big data jobs as a service

Inventors: Amit Martu Kamat (Sammamish, WA); Siddharth Sharma (Newark, CA); Raveendrnathan Loganathan (Sammamish, WA); Anil Raju Puliyeril (Union City, CA); Kenneth Siu (Castro Valley, CA)
Assignee: Salesforce Inc.
G06F9/4881G06F9/3891G06F9/505
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 11,886,912
App. No.
17/162,675
Granted
Jan 30, 2024
Kind
B2
Abstract

Data processing approaches are disclosed that include receiving a configuration indicating a plurality of parameters for performing a data processing job, identifying available compute resources from a plurality of public cloud infrastructures, where each public cloud infrastructure of the plurality of public cloud infrastructures supports one or more computing applications, one or more job schedulers, and one or more utilization rates, selecting one or more compute clusters from one or more of the plurality of public cloud infrastructures based on a matching process between the parameters for performing the data processing job and a combination of the one or more computing applications, the one or more job schedulers, and the one or more utilization rates, and initiating the one or more compute clusters for processing the data processing job based on the selecting.

Claims (53)

1. A method for data processing at an application server, comprising:

receiving a configuration indicating a plurality of parameters for performing a data processing job and a plurality of performance targets for performing the data processing job;

identifying available compute resources from a plurality of public cloud infrastructures, wherein each public cloud infrastructure of the plurality of public cloud infrastructures supports one or more computing applications, one or more job schedulers, and one or more utilization rates associated with the one or more job schedulers;

selecting one or more compute clusters from one or more of the plurality of public cloud infrastructures based at least in part on a matching process between the parameters for performing the data processing job and a combination of the one or more computing applications, the one or more job schedulers, and the one or more utilization rates associated with the one or more job schedulers, wherein the matching process comprises one or more rules configured at the application server, the one or more rules defining one or more weights for each of the plurality of parameters for performing the data processing job, the one or more weights associated with the plurality of performance targets and based at least in part on one or more locations, at one or more public cloud infrastructures of the plurality of public cloud infrastructures, of data to be processed by the data processing job, and wherein the one or more compute clusters are selected based at least in part on the weights and a prioritization of the plurality of performance targets, the prioritization based at least in part on the one or more weights; and

initiating the one or more compute clusters for processing the data processing job based at least in part on the selecting.

2. The method of claim 1 , wherein identifying available compute resources from a plurality of public cloud infrastructures comprises:

receiving one or more indications of real-time availability from the plurality of public cloud infrastructures; and

receiving one or more indications of utilization rates from the plurality of public cloud infrastructures.

3. The method of claim 1 , wherein initiating the one or more compute clusters for processing the data processing job comprises:

sending configuration information to each of the selected one or more compute clusters, wherein the configuration information is based at least in part on one or more computing applications and one or more job schedulers associated with each of the selected one or more compute clusters; and

sending an initiation request to the selected one or more compute clusters.

4. The method of claim 1 , further comprising:

identifying that data to be processed by the data processing job is stored by a first public cloud infrastructure of the plurality of public cloud infrastructures, wherein the selecting the one or more compute clusters is further based at least in part on the data to be processed being stored by the first public cloud infrastructure.

5. The method of claim 1 , further comprising:

receiving one or more metrics from the one or more initiated compute clusters.

6. The method of claim 5 , further comprising:

performing a scaling operation for the initiated one or more compute clusters based at least in part on the one or more metrics, wherein the scaling operation comprises;

selecting one or more additional compute clusters from one or more of the plurality of public cloud infrastructures based at least in part on the one or more metrics; and

initiating the one or more additional compute clusters for processing the data processing job.

7. The method of claim 5 , further comprising:

performing a scaling operation for the initiated one or more compute clusters based at least in part on the one or more metrics, wherein the scaling operation comprises;

selecting one or more of the compute clusters to be terminated based at least in part on one or more of the metrics; and

terminating the one or more compute clusters selected to be terminated.

8. The method of claim 1 , wherein the parameters for performing the data processing job comprise a selection of an operating environment.

9. The method of claim 8 , wherein the operating environment is a development environment.

10. The method of claim 8 , wherein the operating environment is a production environment.

11. The method of claim 1 , wherein the parameters for performing the data processing job comprise a designation of one or more acceptable utilization rates.

12. The method of claim 1 , wherein:

each public cloud infrastructure of the plurality of public cloud infrastructures supports one or more instance families that define a resource optimization scheme; and

the matching process comprises a matching between the parameters for performing the data processing job and the one or more instance families.

13. The method of claim 12 , wherein the resource optimization scheme optimizes computation performance of at least one of the one or more compute clusters.

14. The method of claim 12 wherein the resource optimization scheme optimizes memory performance of at least one of the one or more compute clusters.

15. An apparatus for data processing at an application server, comprising:

a processor,

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

receive a configuration indicating a plurality of parameters for performing a data processing job and a plurality of performance targets for performing the data processing job;

identify available compute resources from a plurality of public cloud infrastructures, wherein each public cloud infrastructure of the plurality of public cloud infrastructures supports one or more computing applications, one or more job schedulers, and one or more utilization rates associated with the one or more job schedulers;

select one or more compute clusters from one or more of the plurality of public cloud infrastructures based at least in part on a matching process between the parameters for performing the data processing job and a combination of the one or more computing applications, the one or more job schedulers, and the one or more utilization rates associated with the one or more job schedulers, wherein the matching process comprises one or more rules configured at the application server, the one or more rules defining one or more weights for each of the plurality of parameters for performing the data processing job, the one or more weights associated with the plurality of performance targets and based at least in part on one or more locations, at one or more public cloud infrastructures of the plurality of public cloud infrastructures, of data to be processed by the data processing job, and wherein the one or more compute clusters are selected based at least in part on the weights and a prioritization of the plurality of performance targets, the prioritization based at least in part on the one or more weights; and

initiate the one or more compute clusters for processing the data processing job based at least in part on the selecting.

16. The apparatus of claim 15 , wherein the instructions to identify available compute resources from a plurality of public cloud infrastructures are executable by the processor to cause the apparatus to:

receive one or more indications of real-time availability from the plurality of public cloud infrastructures; and

receive one or more indications of utilization rates from the plurality of public cloud infrastructures.

17. The apparatus of claim 15 , wherein the instructions to initiate the one or more compute clusters for processing the data processing job are executable by the processor to cause the apparatus to:

send configuration information to each of the selected one or more compute clusters, wherein the configuration information is based at least in part on one or more computing applications and one or more job schedulers associated with each of the selected one or more compute clusters; and

send an initiation request to the selected one or more compute clusters.

18. The apparatus of claim 15 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive one or more metrics from the one or more initiated compute clusters.

19. A non-transitory computer-readable medium storing code for data processing at an application server, the code comprising instructions executable by a processor to:

receive a configuration indicating a plurality of parameters for performing a data processing job and a plurality of performance targets for performing the data processing job;

identify available compute resources from a plurality of public cloud infrastructures, wherein each public cloud infrastructure of the plurality of public cloud infrastructures supports one or more computing applications, one or more job schedulers, and one or more utilization rates associated with the one or more job schedulers;

select one or more compute clusters from one or more of the plurality of public cloud infrastructures based at least in part on a matching process between the parameters for performing the data processing job and a combination of the one or more computing applications, the one or more job schedulers, and the one or more utilization rates associated with the one or more job schedulers, wherein the matching process comprises one or more rules configured at the application server, the one or more rules defining one or more weights for each of the plurality of parameters for performing the data processing job, the one or more weights associated with the plurality of performance targets and based at least in part on one or more locations, at one or more public cloud infrastructures of the plurality of public cloud infrastructures, of data to be processed by the data processing job, and wherein the one or more compute clusters are selected based at least in part on the weights and a prioritization of the plurality of performance targets, the prioritization based at least in part on the one or more weights; and

initiate the one or more compute clusters for processing the data processing job based at least in part on the selecting.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0512 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2023
From: KAMAT, AMIT; SHARMA, SIDDHARTH; LOGANATHAN, RAVEENDRNATHAN; PULIYERIL, ANIL; SIU, KENNETH
To: SALESFORCE.COM, INC.
Reel/Frame 065900/0765 →
Continuity (2)
Provisional Application 63093671 · Oct 19, 2020
Related Publication 20220121488A1 · Apr 21, 2022