IP Library Granted Patent US 10,244,045
Granted Patent B2
US 10,244,045 · App. 15/411,269 · Granted Mar 26, 2019

Software-defined networking single-source enterprise workload manager

Inventors: Casimer M. DeCusatis (Poughkeepsie, NY); Rajaram B. Krishnamurthy (Wappingers Falls, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L67/1002H04L41/0893H04L41/0896H04L41/5054H04L45/02H04L45/64H04L47/2425H04L47/70H04L47/76H04L47/781H04L47/803H04L47/805H04L67/10H04L41/5025H04L43/087H04L43/0858
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,244,045
App. No.
15/411,269
Granted
Mar 26, 2019
Kind
B2
Abstract

Embodiments relate to a software-defined networking (SDN) single-source enterprise workload manager. An aspect includes analyzing, by an enterprise server executing a workload compiler, a plurality of source code files of a workload during a workload compilation and build process to determine enterprise network connections between a plurality of subprograms of the workload as a plurality of compile-time information of the workload. The workload compiler generates a network flow graph as interactions between the subprograms of the workload in the enterprise network responsive to the compile-time information of the workload. The network flow graph is provided to an SDN controller to make network resource allocations for the workload based on the network flow graph. A workload manager of the enterprise server adjusts an allocation of compute resources based on a notification of a reallocation of network resources made by the SDN controller.

Claims (46)

1. A computer-implemented method for software-defined

networking (SDN) single-source enterprise workload management, the method comprising:

analyzing, by an enterprise server executing a workload compiler, a plurality of source code files of a workload during a workload compilation and build process to determine enterprise network connections between a plurality of subprograms of the workload as a plurality of compile-time information of the workload, the workload comprising a distributed application formed from the subprograms executing on a plurality of servers distributed across the enterprise network to implement portions of the distributed application;

generating, by the workload compiler, a network flow graph as interactions between the subprograms of the workload in the enterprise network responsive to the compile-time information of the workload;

including quality-of-service requirements in the network flow graph on an end-to-end and per-link basis according to a service level agreement;

providing the network flow graph to an SDN controller to make network resource allocations for the workload based on the network flow graph and the quality-of-service requirements to ensure compliance with the service level agreement across the enterprise network; and

adjusting an allocation of compute resources, by a workload manager of the enterprise server, based on a notification of a reallocation of network resources made by the SDN controller, wherein the reallocation of network resources comprises a modified allocation of one or more flows between two or more compute nodes through two or more links and through two or more switches in the enterprise network.

2. The method of claim 1 , further comprising: receiving, at a workload manager of the enterprise server, hints about the network resource allocation from the SDN controller; and

adjusting the allocation of compute resources, by the workload manager, to align with the network resource allocation to meet the service level agreement based on the hints.

3. The method of claim 1 , wherein the quality-of-service requirements comprise an end-to-end delay requirement, a bandwidth requirement, and a jitter requirement.

4. The method of claim 3 , wherein adjusting the allocation of compute

resources, by the workload manager, further comprises allocating one or more additional buffers at one or more of compute nodes of the enterprise network based on the SDN controller determining that the jitter requirement is not met by a current allocation.

5. The method of claim 1 , wherein the network flow graph is provided to the SDN controller via a secure link.

6. A system for software-defined networking (SDN) single-source enterprise workload management, the system comprising:

an SDN controller in an enterprise network; and

an enterprise server comprising a workload compiler and a workload manager, the enterprise server configured to perform a method comprising:

analyzing, by the workload compiler, a plurality of source code files of a workload during a workload compilation and build process to determine enterprise network connections between a plurality of subprograms of the workload as a plurality of compile-time information of the workload, the workload comprising a distributed application formed from the subprograms executing on a plurality of servers distributed across the enterprise network to implement portions of the distributed application;

generating, by the workload compiler, a network flow graph as interactions between the subprograms of the workload in the enterprise network responsive to the compile-time information of the workload;

including quality-of-service requirements in the network flow graph on an end-to-end and per-link basis according to a service level agreement;

providing the network flow graph to the SDN controller to make network resource allocations for the workload based on the network flow graph and the quality-of-service requirements to ensure compliance with the service level agreement across the enterprise network; and

adjusting an allocation of compute resources, by the workload manager, based on a notification of a reallocation of network resources made by the SDN controller, wherein the reallocation of network resources comprises a modified allocation of one or more flows between two or more compute nodes through two or more links and through two or more switches in the enterprise network.

7. The system of claim 6 , wherein the SDN controller is configured to perform a method comprising:

receiving the network flow graph at the SDN controller;

creating a local copy of the network flow graph within the SDN controller;

analyzing the local copy of the network flow graph to identify the interactions between the subprograms as prompts;

expanding the local copy of the network flow graph to include currently known characteristics of the enterprise network;

allocating network resources to define a plurality of flow tables for a plurality of flows through the enterprise network based on the prompts and the currently known characteristics of the enterprise network, wherein the flow tables are defined for a plurality of switches in the enterprise network and are deployed from the SDN controller to the switches; controlling network traffic in the enterprise network based on the flows; monitoring network traffic performance metrics for the flows at run-time; and

reallocating the network resources based on determining that at least one of the network traffic performance metrics does not meet at least one of the quality-of-service requirements, wherein the reallocating comprises updating one or more of the flow tables.

8. The system of claim 6 , wherein the enterprise server is further configured to perform:

receiving, at a workload manager of the enterprise server, hints about the network resource allocation from the SDN controller; and

adjusting the allocation of compute resources, by the workload manager, to align with the network resource allocation to meet the service level agreement based on the hints.

9. The system of claim 6 , wherein the quality-of-service requirements comprise an end-to-end delay requirement, a bandwidth requirement, and a jitter requirement, and further wherein adjusting the allocation of compute resources, by the workload manager, further comprises allocating one or more additional buffers at one or more of compute nodes of the enterprise network based on the SDN controller determining that the jitter requirement is not met by a current allocation.

10. The system of claim 6 , wherein the network flow graph is provided to the SDN controller via a secure link.

11. A computer program product for software-defined networking (SDN) single-source enterprise workload management, the computer program product comprising:

a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

analyzing, by an enterprise server executing a workload compiler, a plurality of source code files of a workload during a workload compilation and build process to determine enterprise network connections between a plurality of subprograms of the workload as a plurality of compile-time information of the workload, the workload comprising a distributed application formed from the subprograms executing on a plurality of servers distributed across the enterprise network to implement portions of the distributed application;

generating, by the workload compiler, a network flow graph as interactions between the subprograms of the workload in the enterprise network responsive to the compile-time information of the workload;

including quality-of-service requirements in the network flow graph on an end-to-end and per-link basis according to a service level agreement;

providing the network flow graph to an SDN controller to make network resource allocations for the workload based on the network flow graph and the quality-of-service requirements to ensure compliance with the service level agreement across the enterprise network; and

adjusting an allocation of compute resources, by a workload manager of the enterprise server, based on a notification of a reallocation of network resources made by the SDN controller, wherein the reallocation of network resources comprises a modified allocation of one or more flows between two or more compute nodes through two or more links and through two or more switches in the enterprise network.

12. The computer program product of claim 11 , wherein the instructions are further configured for performing the method comprising:

receiving, at a workload manager of the enterprise server, hints about the network resource allocation from the SDN controller; and

adjusting the allocation of compute resources, by the workload manager, to align with the network resource allocation to meet the service level agreement based on the hints.

13. The computer program product of claim 11 , wherein the quality-of-service requirements comprise an end-to-end delay requirement, a bandwidth requirement, and a jitter requirement.

14. The computer program product of claim 13 , wherein adjusting the

allocation of compute resources, by the workload manager, further comprises allocating one or more additional buffers at one or more of compute nodes of the enterprise network based on the SDN controller determining that the jitter requirement is not met by a current allocation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2017
From: DECUSATIS, CASIMER M.; KRISHNAMURTHY, RAJARAM B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041027/0080 →
Continuity (3)
Continuation 14501198 · Sep 30, 2014
Continuation 14101393 · Dec 10, 2013
Related Publication 20170134481A1 · May 11, 2017