IP Library › Granted Patent US 10,261,836
Granted Patent B2
US 10,261,836 · App. 15/464,902 · Granted Apr 16, 2019

Dynamic dispatching of workloads spanning heterogeneous services

Inventors: Ajeet Bansal (Foster City, CA); Rohit Srivastava (Belmont, CA)
Assignee: Oracle International Corporation
G06F9/505G06F11/30H04L12/14H04L43/0876H04L67/10H04M15/09H04W4/24H04L41/5003
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,261,836
App. No.
15/464,902
Granted
Apr 16, 2019
Kind
B2
Abstract

A system for executing a workload that includes a plurality of transactions for a first time slot determines whether a metered cloud service has a sufficient quota of operations available to execute respective metered transactions. For the first time slot, the system determines whether a non-metered cloud service has a sufficient processing load to execute respective non-metered transactions. The system executes the plurality of transactions during the first time slot when each metered cloud service has the sufficient quota and each non-metered cloud service has the sufficient processing load. Further, the system waits to execute the plurality of transactions of the workload during a time slot subsequent to the first time slot when any of the metered cloud services does not have the sufficient quota or any of the non-metered cloud services does not have a sufficient processing load.

Claims (36)

1. A method of executing a workload that includes a plurality of transactions, the method comprising:

determining a plurality of cloud services needed to execute each of the plurality of transactions, wherein at least one of the determined cloud services is a metered cloud service that executes metered transactions and limits a number of operations that can be performed within a given time interval, and at least one of the determined cloud services is a non-metered cloud service that executes non-metered transactions and does not limit the number of operations that can be performed within the given time interval;

for a first time slot, determining whether each metered cloud service has a sufficient quota of operations available to execute respective metered transactions;

for the first time slot, determining whether each non-metered cloud service has a sufficient processing load to execute respective non-metered transactions;

executing the plurality of transactions of the workload during the first time slot when each metered cloud service has the sufficient quota and each non-metered cloud service has the sufficient processing load, wherein executing the plurality of transactions of the workload uses both metered cloud services and non-metered cloud services; and

waiting to execute the plurality of transactions of the workload during a time slot subsequent to the first time slot when any of the metered cloud services does not have the sufficient quota or any of the non-metered cloud services does not have a sufficient processing load.

2. The method of claim 1 , wherein the determining whether each metered cloud service has the sufficient quota of operations available to execute respective metered transactions comprises invoking each metered cloud service using a Representational State Transfer (REST) application program interface (API).

3. The method of claim 2 , further comprising receiving metadata in response to the invoking, the metadata comprising a maximum number of transactions allowed to be performed during the first time slot.

4. The method of claim 3 , wherein at least one metered cloud service comprises a microservice.

5. The method of claim 1 , wherein the determining whether each non-metered cloud service has the sufficient processing load to execute respective non-metered transactions comprises invoking each non-metered cloud service using a Representational State Transfer (REST) application program interface (API).

6. The method of claim 5 , further comprising receiving metadata in response to the invoking, the metadata comprising an average processor load over a time duration or a memory utilization level.

7. The method of claim 6 , wherein the memory utilization level comprises a Java heap usage.

8. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, executes a workload that includes a plurality of transactions, the executes workload comprising:

determining a plurality of cloud services needed to execute each of the plurality of transactions, wherein at least one of the determined cloud services is a metered cloud service that executes metered transactions and limits a number of operations that can be performed within a given time interval, and at least one of the determined cloud services is a non-metered cloud service that executes non-metered transactions and does not limit the number of operations that can be performed within the given time interval;

for a first time slot, determining whether each metered cloud service has a sufficient quota of operations available to execute respective metered transactions;

for the first time slot, determining whether each non-metered cloud service has a sufficient processing load to execute respective non-metered transactions;

executing the plurality of transactions of the workload during the first time slot when each metered cloud service has the sufficient quota and each non-metered cloud service has the sufficient processing load, wherein executing the plurality of transactions of the workload uses both metered cloud services and non-metered cloud services; and

waiting to execute the plurality of transactions of the workload during a time slot subsequent to the first time slot when any of the metered cloud services does not have the sufficient quota or any of the non-metered cloud services does not have a sufficient processing load.

9. The computer readable medium of claim 8 , wherein the determining whether each metered cloud service has the sufficient quota of operations available to execute respective metered transactions comprises invoking each metered cloud service using a Representational State Transfer (REST) application program interface (API).

10. The computer readable medium of claim 9 , the executes workload further comprising receiving metadata in response to the invoking, the metadata comprising a maximum number of transactions allowed to be performed during the first time slot.

11. The computer readable medium of claim 10 , wherein at least one metered cloud service comprises a microservice.

12. The computer readable medium of claim 8 , wherein the determining whether each non-metered cloud service has the sufficient processing load to execute respective non-metered transactions comprises invoking each non-metered cloud service using a Representational State Transfer (REST) application program interface (API).

13. The computer readable medium of claim 12 , the executes workload further comprising receiving metadata in response to the invoking, the metadata comprising an average processor load over a time duration or a memory utilization level.

14. The computer readable medium of claim 13 , wherein the memory utilization level comprises a Java heap usage.

15. A cloud based dynamic dispatcher for a workload that includes a plurality of transactions, the dispatcher comprising:

a processor executing instructions stored in a memory, the processor:

determining a plurality of cloud services needed to execute each of the plurality of transactions, wherein at least one of the determined cloud services is a metered cloud service that executes metered transactions and limits a number of operations that can be performed within a given time interval, and at least one of the determined cloud services is a non-metered cloud service that executes non-metered transactions and does not limit the number of operations that can be performed within the given time interval;

for a first time slot, determining whether each metered cloud service has a sufficient quota of operations available to execute respective metered transactions;

for the first time slot, determining whether each non-metered cloud service has a sufficient processing load to execute respective non-metered transactions;

executing the plurality of transactions of the workload during the first time slot when each metered cloud service has the sufficient quota and each non-metered cloud service has the sufficient processing load, wherein executing the plurality of transactions of the workload uses both metered cloud services and non-metered cloud services; and

waiting to execute the plurality of transactions of the workload during a time slot subsequent to the first time slot when any of the metered cloud services does not have the sufficient quota or any of the non-metered cloud services does not have a sufficient processing load.

16. The dynamic dispatcher of claim 15 , wherein the determining whether each metered cloud service has the sufficient quota of operations available to execute respective metered transactions comprises invoking each metered cloud service using a Representational State Transfer (REST) application program interface (API).

17. The dynamic dispatcher of claim 16 , further comprising receiving metadata in response to the invoking, the metadata comprising a maximum number of transactions allowed to be performed during the first time slot.

18. The dynamic dispatcher of claim 17 , wherein at least one metered cloud service comprises a microservice.

19. The dynamic dispatcher of claim 15 , wherein the determining whether each non-metered cloud service has the sufficient processing load to execute respective non-metered transactions comprises invoking each non-metered cloud service using a Representational State Transfer (REST) application program interface (API).

20. The dynamic dispatcher of claim 19 , further comprising receiving metadata in response to the invoking, the metadata comprising an average processor load over a time duration or a memory utilization level.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2017
From: BANSAL, AJEET
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 041675/0044 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2017
From: BANSAL, AJEET; SRIVASTAVA, ROHIT
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 041675/0593 →
Continuity (1)
Related Publication 20180276041A1 · Sep 27, 2018
Cited By (1)
US 12,273,343