Embodiments relate to facilitating a plurality of heterogeneous hosts to use a range of priority values. A method of facilitating a plurality of heterogeneous hosts to use a range of priority values is provided. The method retrieves a plurality of priority ranges from a plurality of network forwarding elements shared by a plurality of heterogeneous hosts. The network forwarding elements provide access to a set of storage devices that stores data for the plurality of heterogeneous hosts. The method generates, by a computer that comprises one of the heterogeneous hosts, a universal priority range from the plurality of priority ranges. The method maps a plurality of workloads performed by the computer to priority values in the universal priority range. The method sends the universal priority range to at least one other host of the heterogeneous hosts.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A computer program product for facilitating a plurality of heterogeneous hosts to use a range of priority values, the computer program product comprising: a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions readable by a processing circuit to cause the processing circuit to perform a method comprising: retrieving a plurality of ranges of priority values from a plurality of network forwarding elements shared by a plurality of heterogeneous hosts, the network forwarding elements providing access to a set of storage devices that stores data for the plurality of heterogeneous hosts; generating a universal priority range from the plurality of ranges of priority values; mapping a plurality of workloads performed by the plurality of heterogeneous hosts to priority values in the universal priority range; and sending the universal priority range to at least one other host of the plurality of heterogeneous hosts; wherein the at least one other host maps a plurality of workloads performed by the at least one other host to the priority values in the universal priority range; and wherein the network forwarding elements forward the data for the plurality of workloads between the at least one host and the storage devices based on the priority values mapped to the workloads, wherein data with a higher priority value is forwarded before data with a lower priority value, and wherein the priority values mapped to the workloads are stored in a packet header of the data.
A software program helps different types of computers (heterogeneous hosts) prioritize network traffic. It retrieves priority ranges from network devices that connect the computers to shared storage. The program creates a single, universal priority range from these individual ranges. It then assigns priority values from this universal range to the different tasks (workloads) running on the computers. This universal range is shared with other computers. The network devices use these priority values in the packet header to forward data, giving higher priority data preferential treatment to improve speed. All devices on the fabric use the same standard of prioritization.
2. The computer program product of claim 1 , wherein the retrieving the plurality of priority comprises: sending a request for a range of priority values to a network forwarding element; and receiving the range of priority values from the network forwarding element.
To retrieve the priority ranges, the software program from the previous description sends a request to each network device and then receives the device's range of priority values in response. This allows the system to dynamically learn the capabilities of the fabric.
3. The computer program product of claim 1 , wherein the generating the universal priority range comprises: setting a maximum priority value of the universal priority range to a minimum priority value of maximum priority values of the range of priority values; and setting a minimum priority value of the universal priority range to a maximum priority value of minimum priority values of the range of priority values.
The software program from the first description creates the universal priority range by finding the smallest maximum priority value and the largest minimum priority value from all the individual device ranges. The smallest maximum is used as the maximum of the universal range, and the largest minimum is used as the minimum of the universal range. This ensures the universal range is compatible with all devices.
4. The computer program product of claim 1 , wherein each of the workloads is associated with a performance goal that quantifies how fast the workload has to be performed by a corresponding host, wherein the mapping the plurality of workloads to the priority values is based on the performance goals associated with the workloads.
In the software program from the first description, each task is associated with a performance goal (how fast it should run). The mapping of tasks to priority values is based on these performance goals. Tasks that need to run faster get higher priority.
5. The computer program product of claim 4 , wherein the method further comprises: monitoring each workload to determine whether the workload is meeting the performance goal; and adjusting the mapping between the workload to the priority value based on determining that the workload is not meeting the performance goal.
The software program described earlier monitors each task to see if it's meeting its performance goal. If a task isn't running fast enough, the program adjusts the priority value assigned to that task, increasing the priority to meet the performance goal.
6. The computer program product of claim 1 , wherein each of the workloads is associated with an importance value that indicates importance of the workload relative to other workloads, wherein the mapping the plurality of workloads to the priority values is based on the importance values of the workloads.
In the software program from the first description, each task also has an "importance value." The mapping of tasks to priority values is based on how important the task is. More important tasks get higher priority.
7. The computer program product of claim 1 , wherein the network forwarding elements form a fabric, wherein the method further comprises: determining whether a network forwarding element is removed from or added to the fabric; and based on determining that a network forwarding element is removed from or added to the fabric, updating the universal priority range.
The network devices in the software program from the first description form a "fabric." The program detects when devices are added or removed from this fabric. When a change occurs, the universal priority range is updated to reflect the new device capabilities or the removal of a device from the priority scheme.
8. The computer program product of claim 1 , wherein at least two of the heterogeneous hosts run different operating systems.
The heterogeneous computers in the software program from the first description can run different operating systems. Despite the differences, the system ensures they all can use the same universal priority range.
9. A computer implemented method of facilitating a plurality of heterogeneous hosts to use a range of priority values, the method comprising: retrieving a plurality of ranges of priority values from a plurality of network forwarding elements shared by a plurality of heterogeneous hosts, the network forwarding elements providing access to a set of storage devices that stores data for the plurality of heterogeneous hosts; generating, by a computer that comprises one of the heterogeneous hosts, a universal priority range from the plurality of ranges of priority values; mapping a plurality of workloads performed by the plurality of heterogeneous hosts to priority values in the universal priority range; and sending the universal priority range to at least one other host of the plurality of heterogeneous hosts, wherein the at least one other host maps a plurality of workloads performed by the at least one other host to the priority values in the universal priority range, and wherein the network forwarding elements forward the data for the plurality of workloads between the at least one host and the storage devices based on the priority values mapped to the workloads, wherein data with a higher priority value is forwarded before data with a lower priority value, and wherein the priority values mapped to the workloads are stored in a packet header of the data.
A method to help different types of computers (heterogeneous hosts) prioritize network traffic. It retrieves priority ranges from network devices that connect the computers to shared storage. A computer creates a single, universal priority range from these individual ranges. It then assigns priority values from this universal range to the different tasks (workloads) running on the computers. This universal range is shared with other computers. The network devices use these priority values in the packet header to forward data, giving higher priority data preferential treatment to improve speed. All devices on the fabric use the same standard of prioritization.
10. The method of claim 9 , wherein the retrieving the plurality of priority comprises: sending a request for a range of priority values to a network forwarding element; and receiving a range of priority values from the network forwarding element.
To retrieve the priority ranges, the method from the previous description sends a request to each network device and then receives the device's range of priority values in response. This allows the system to dynamically learn the capabilities of the fabric.
11. The method of claim 9 , wherein the generating the universal priority range comprises: setting a maximum priority value of the universal priority range to a minimum priority value of maximum priority values of the range of priority values; and setting a minimum priority value of the universal priority range to a maximum priority value of minimum priority values of the range of priority values.
The method from the ninth description creates the universal priority range by finding the smallest maximum priority value and the largest minimum priority value from all the individual device ranges. The smallest maximum is used as the maximum of the universal range, and the largest minimum is used as the minimum of the universal range. This ensures the universal range is compatible with all devices.
12. The method of claim 9 , wherein each of the workloads is associated with a performance goal that quantifies how fast the workload has to be performed by a corresponding host, wherein the mapping the plurality of workloads to the priority values is based on the performance goals associated with the workloads.
In the method from the ninth description, each task is associated with a performance goal (how fast it should run). The mapping of tasks to priority values is based on these performance goals. Tasks that need to run faster get higher priority.
13. The method of claim 12 further comprising: monitoring each workload to determine whether the workload is meeting the performance goal; and adjusting the mapping between the workload to the priority value based on determining that the workload is not meeting the performance goal.
The method described earlier monitors each task to see if it's meeting its performance goal. If a task isn't running fast enough, the method adjusts the priority value assigned to that task, increasing the priority to meet the performance goal.
14. The method of claim 9 , wherein each of the workloads is associated with an importance value that indicates importance of the workload relative to other workloads, wherein the mapping the plurality of workloads to the priority values is based on the importance values of the workloads.
In the method from the ninth description, each task also has an "importance value." The mapping of tasks to priority values is based on how important the task is. More important tasks get higher priority.
15. The method of claim 9 , wherein the network forwarding elements form a fabric, wherein the method further comprises: determining whether a network forwarding element is removed from or added to the fabric; and based on determining that a network forwarding element is removed from or added to the fabric, updating the universal priority range.
The network devices in the method from the ninth description form a "fabric." The method detects when devices are added or removed from this fabric. When a change occurs, the universal priority range is updated to reflect the new device capabilities or the removal of a device from the priority scheme.
16. A computer system for facilitating a plurality of heterogeneous hosts to use a range of priority values, the computer system being one of the heterogeneous hosts, the system comprising: a memory having computer readable instructions; and a processor configured to execute the computer readable instructions, the instructions comprising: retrieving a plurality of ranges of priority values from a plurality of network forwarding elements shared by a plurality of heterogeneous hosts, the network forwarding elements providing access to a set of storage devices that stores data for the plurality of heterogeneous hosts; generating a universal priority range from the plurality of ranges of priority values; mapping a plurality of workloads performed by the plurality of heterogeneous hosts to priority values in the universal priority range; and sending the universal priority range to at least one other host of the plurality of heterogeneous hosts, wherein the at least one other host maps a plurality of workloads performed by the at least one other host to the priority values in the universal priority range, and wherein the network forwarding elements forward the data for the plurality of workloads between the at least one host and the storage devices based on the priority values mapped to the workloads, wherein data with a higher priority value is forwarded before data with a lower priority value, and wherein the priority values mapped to the workloads are stored in a packet header of the data.
A computer system that helps different types of computers (heterogeneous hosts) prioritize network traffic is implemented as one of those heterogeneous hosts. The system retrieves priority ranges from network devices shared by the heterogeneous hosts, where the network devices provide access to shared storage. The system generates a universal priority range from the retrieved ranges, and maps workloads to priority values within that universal range. The system shares the universal range with other hosts, so each host maps its own workloads, and the network forwards data based on these mapped priority values in packet headers.
17. The computer system of claim 16 , wherein the retrieving the plurality of priority comprises: sending a request for a range of priority values to a network forwarding element; and receiving a range of priority values from the network forwarding element.
When retrieving the priority ranges in the computer system from the sixteenth description, the system sends a request for a priority range to each network device and receives the ranges in response.
18. The computer system of claim 16 , wherein the generating the universal priority range comprises: setting a maximum priority value of the universal priority range to a minimum priority value of maximum priority values of the range of priority values; and setting a minimum priority value of the universal priority range to a maximum priority value of minimum priority values of the range of priority values.
When generating the universal priority range, the computer system from the sixteenth description sets the maximum value of the range to the smallest of the maximum priority values, and the minimum value of the range to the largest of the minimum priority values.
19. The computer system of claim 16 , wherein each of the workloads is associated with a performance goal that quantifies how fast the workload has to be performed by a corresponding host, wherein the mapping the plurality of workloads to the priority values is based on the performance goals associated with the workloads.
Within the computer system from the sixteenth description, each workload is associated with a performance goal. The mapping of workloads to priority values is based on these goals.
20. The computer system of claim 19 , wherein the instructions further comprise: monitoring each workload to determine whether the workload is meeting the performance goal; and adjusting the mapping between the workload to the priority value based on determining that the workload is not meeting the performance goal.
The computer system in the nineteenth description monitors each workload to determine if it's meeting its performance goal and adjusts the workload's priority mapping if the goal isn't being met.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
March 14, 2014
May 23, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.