IP Library Granted Patent US 9,223,623
Granted Patent B2
US 9,223,623 · App. 13/433,177 · Granted Dec 29, 2015

Dynamic service resource control

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 9,223,623
App. No.
13/433,177
Granted
Dec 29, 2015
Kind
B2
Abstract

The embodiments may provide a data processing apparatus for controlling service resource allocation. The data processing apparatus including a resource hints controller configured to obtain a resource control request before a task is to be executed on a virtual machine having resources allocated to a processing unit, a memory unit and a storage unit. The resource hints controller is configured to obtain a usage of the resources allocated to at least one of the processing unit, the memory unit and the storage unit of the virtual machine, and increase the resources allocated to the at least one of the processing unit, the memory unit and the storage unit in response to the resource control request based on the usage being equal to or above a threshold level.

Claims (38)

1. A system for controlling service resource allocation, the system comprising:

an application including source code for performing a plurality of tasks by at least one processor, the application including a resource control hint embedded into the source code of the application, the plurality of tasks including a resource-intensive task, the resource control hint being positioned within the source code of the application before the resource-intensive task, wherein, while executing the source code of the application, a resource control request is generated upon discovery of the embedded resource control hint;

a resource hints controller executed by the at least one processor to obtain the resource control request before executing the resource-intensive task on a virtual machine having resources allocated to a processing unit, a memory unit and a storage unit,

the resource hints controller executed by the at least one processor to determine whether or not to increase the resources allocated to the processing unit, the memory unit, and the storage unit in response to the resource control request,

wherein the resource hints controller executed by the at least one processor to obtain a usage of the resources allocated to at least one of the processing unit, the memory unit and the storage unit of the virtual machine, and determine to increase the resources allocated to at least one of the processing unit, the memory unit and the storage unit based on the usage being equal to or above a threshold level.

2. The system of claim 1 , wherein the resource hints controller executed by the at least one processor to obtain the resource control request includes: receiving the resource control request, over a network, from the virtual machine before the resource-intensive task is executed.

3. The system of claim 1 , wherein the resource hints controller executed by the at least one processor to receive monitoring information, over a network, from the virtual machine, the monitoring information providing the usage of the resources allocated to the at least one of the processing unit, the memory unit and the storage unit.

4. The system of claim 1 , wherein the resource hints controller executed by the at least one processor to receive a task complete response, over a network, from the virtual machine, the task complete response indicating that the resource-intensive task has been executed, the resource hints controller executed by the at least one processor to decrease the resources allocated to the at least one of the processing unit, the memory unit and the storage unit in response to the task complete response.

5. The system of claim 1 , further comprising: the resource hints controller executed by the at least one processor to increase resources allocated to a secondary virtual machine that is dependent on the virtual machine, the secondary virtual machine being in a same or different tier than the virtual machine.

6. A system for controlling service resource allocation, the system comprising:

a virtual machine being associated with an operating system and resources allocated to a memory unit, a processing unit and a storage unit, the memory unit storing source code of an application, the processing unit executed by at least one processor to execute a plurality of tasks of the application on the operating system according to the source code of the application, the application executed by the at least one processor including a resource control hint embedded into the source code of the application, the plurality of tasks including a resource-intensive task, the resource control hint being positioned within the source code of the application before the resource-intensive task,

the virtual machine executing the at least one processor to discover the embedded resource control hint from the source code of the application before executing the resource-intensive task, the virtual machine executing the at least one processor to transmit a resource control hint upon discovery of the embedded resource control hint; and

a resource hints controller executed by the at least one processor to determine whether or not to increase the resources allocated to the processing unit, the memory unit, and the storage unit in response to the resource control request,

the resource hints controller executed by the at least one processor to increase the resources allocated to at least one of the at least one of the processing unit, the memory unit and the storage unit based on a usage being equal to or above a threshold level.

7. The system of claim 6 , wherein the virtual machine executing the at least one processor to transmit the resource control request, over a network, to the resource hints controller.

8. The system of claim 6 , wherein the virtual machine executing the at least one processor to obtain a secondary embedded resource control hint from the source code after the resource-intensive task is executed, and the resources allocated to the at least one of the memory unit, the processing unit and the storage unit are decreased in response to discovery of the secondary embedded resource control hint.

9. The system of claim 6 , wherein the virtual machine executing the at least one processor to transmit a task completion response, over a network, to the resource hints controller after the resource-intensive task is executed, and the resources allocated to the at least one of the memory unit, the processing unit and the storage unit are decreased in response to the task completion response.

10. The system of claim 6 , wherein the resource hints controller executed by the at least one processor to obtain the usage of the resources allocated to the at least one of the processing unit, the memory unit and the storage unit based on monitoring information received over a network, and increase, the resources allocated to at least one of the processing unit, the memory unit and the storage unit in response to the resource control request based on the usage being equal to or above the threshold level.

11. The system of claim 6 , wherein the resource hints controller executed by the at least one processor to increase the resources allocated to a secondary virtual machine in response to the resource control request, the secondary virtual machine being in a same or different tier than the virtual machine.

12. The system of claim 6 , wherein the application is a multi-tier application, and the resource hints controller, the virtual machine, the secondary virtual machine realize a logical service.

13. A method for controlling service resource allocation, method comprising: obtaining a resource control request before a resource-intensive task of an application is executed by at least one processor on a virtual machine having resources allocated to a processing unit, a memory unit and a storage unit, the application including source code for performing a plurality of tasks executed by the at least one processor, the application executed by at least one processor including a resource control hint embedded into the source code of the application, the plurality of tasks including the resource-intensive task, the resource control hint being positioned within the source code of the application before the resource-intensive task, wherein, while executing the source code of the application, the resource control request is generated upon discovery of the resource control hint;

determining, by the at least one processor, whether or not to increase the resources allocated to the processing unit, the memory unit, and the storage unit in response to the resource control request including,

obtaining, by the at least one processor, a usage of the resources allocated to at least one of the processing unit, the memory unit and the storage unit of the virtual machine; and

increasing, by the at least one processor, the resources allocated to the at least one of the processing unit, the memory unit and the storage unit based on the usage being equal to or above a threshold level.

14. The method of claim 13 , wherein the obtaining, by the at least one processor, the resource control request includes: receiving the resource control request, over a network, from the virtual machine before the resource-intensive task is executed.

15. The method of claim 13 , wherein the obtaining, by the at least one processor, the usage of the resources allocated to the at least one of the processing unit, the memory unit and the storage unit includes: receiving monitoring information, over a network, from the virtual machine, the monitoring information providing the usage of the resources allocated to the at least one of the processing unit, the memory unit and the storage unit.

16. The method of claim 13 , further comprising:

receiving a task complete response, over a network, from the virtual machine, the task complete response, executed by the at least one processor, indicating that the resource-intensive task has been executed; and

decreasing, by the at least one processor, the resources allocated to the at least one of the processing unit, the memory unit and the storage unit in response to the task complete response.

17. The method of claim 13 , further comprising: increasing, by the at least one processor, resources allocated to a secondary virtual machine that is dependent on the virtual machine, the secondary virtual machine being in a same or different tier than the virtual machine.

18. A non-transitory computer-readable medium storing executable instructions, wherein the instructions executed by at least one processor are configured to:

obtain a resource control request before a resource-intensive task of an application is executed by the at least one processor on a virtual machine having resources allocated to a processing unit, a memory unit and a storage unit, the application including source code for performing a plurality of tasks, the application including a resource control hint embedded into the source code of the application, the plurality of tasks including the resource-intensive task, the resource control hint being positioned within the source code of the application before the resource-intensive task, wherein, while executing the source code of the application, the resource control request is generated upon discovery of the resource control hint;

determine whether or not to increase the resources allocated to the processing unit, the memory unit, and the storage unit in response to the resource control request including,

obtain a usage of the resources allocated to at least one of the processing unit, the memory unit and the storage unit of the virtual machine; and

increase the resources allocated to the at least one of the processing unit, the memory unit and the storage unit based on the usage being equal to or above a threshold level.

19. The non-transitory computer-readable medium of claim 18 , wherein the executable code includes instructions to:

transmit, over a network, the resource control request to the resource hints controller upon discovery of the embedded resource control hint, and the resources allocated to the at least one of the memory unit, the processing unit and the storage unit are increased in response to the resource control request.

20. The non-transitory computer-readable medium of claim 19 , wherein the executable code includes instructions to: obtain a secondary embedded resource control hint from the source code after the resource-intensive task is executed; decrease the resources allocated to the at least one of the memory unit, the processing unit and the storage unit based on the secondary embedded resource control hint.

Assignments (15)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2012
From: GUJARATHI, NILESH R.; KELKAR, SUHAS
To: BMC SOFTWARE, INC.
Reel/Frame 028472/0078 →