US2016212055A1PendingUtilityA1

Host-based load balancing of network traffic

Assignee: IBMPriority: Jan 21, 2015Filed: Jan 21, 2015Published: Jul 21, 2016
Est. expiryJan 21, 2035(~8.5 yrs left)· nominal 20-yr term from priority
H04L 47/365H04L 47/196H04L 47/125
35
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

At an application at a sender system, when an amount of data to be transmitted from the sender exceeds a flow size threshold, the data is divided into a set of chunks of a size. According to a mapping selection rule, a subset is selected from a set of selected label mappings, wherein each label mapping in the subset maps an original label in the data to a different virtual label. For a chunk, when by routing the chunk to a first networking component corresponding to a first virtual label a fraction of the amount of data that will have been routed to the first component will exceed a mapping threshold, the original label in the chunk is replaced with a second virtual label from a second label mapping in the subset. The chunk is routed to a second networking component corresponding to the second virtual label.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for host-based load balancing of network traffic, the method comprising:
 determining, at an application executing at a sender data processing system, whether an amount of data to be transmitted from the sender data processing system exceeds a flow size threshold;   dividing, responsive to the amount of data exceeding the flow size threshold, the data into a set of chunks, each chunk in the set of chunks being of a chunk size;   selecting, according to a mapping selection rule, from a set of selected label mappings, a subset of selected label mapping, wherein each label mapping in the subset of selected label mappings maps an original label used in the data to a different virtual label according to the label mapping;   evaluating, at the application, for a first chunk in the set of chunks, whether by routing the first chunk to a first networking component corresponding to a first virtual label from a first label mapping in the subset of selected label mappings, a fraction of the amount of data that will have been routed to the first component will exceed a mapping threshold;   replacing, responsive to the evaluating being affirmative, the original label in first chunk with a second virtual label from a second label mapping in the subset of selected label mappings; and   routing the first chunk to a second networking component corresponding to the second virtual label at the time of the routing.   
     
     
         2 . The method of  claim 1 , further comprising:
 evaluating, at the application, for a second chunk in the set of chunks, whether by routing the second chunk to the second networking component, a second fraction of the amount of data that will have been routed to the second component will exceed the mapping threshold;   replacing, responsive to the evaluating being negative, the original label in second chunk with the second virtual label; and   routing the second chunk to the second networking component corresponding to the second virtual label at the time of the routing.   
     
     
         3 . The method of  claim 1 , wherein the original label is usable to transmit the data to a receiver application executing in a receiver data processing system, and wherein the virtual label changeably associated with a networking component in a data network used for transmitting the data during a period in which the transmitting occurs. 
     
     
         4 . The method of  claim 1 , further comprising:
 selecting the set of selected label mappings from a set of configured label mappings, wherein the set of configured label mappings comprises a mapping from each original label that can be received at the application in the sender data processing system to a subset of a set of virtual labels.   
     
     
         5 . The method of  claim 1 , further comprising:
 selecting the chunk size according to a value configured in a chunk size parameter.   
     
     
         6 . The method of  claim 1 , further comprising:
 selecting the chunk size according to a value configured in a chunk time parameter, wherein the chunk size corresponds to an amount of data received at the application for transmission during a period equal to the value of the chunk time parameter.   
     
     
         7 . The method of  claim 1 , further comprising:
 selecting the chunk size according to a value configured in a flowlet parameter, wherein the chunk size corresponds to an amount of data received at the application for transmission during a number of transmission bursts equal to the value of the flowlet parameter.   
     
     
         8 . A computer usable program product comprising a computer readable storage device including computer usable code for host-based load balancing of network traffic, the computer usable code comprising:
 computer usable code for determining, at an application executing at a sender data processing system, whether an amount of data to be transmitted from the sender data processing system exceeds a flow size threshold;   computer usable code for dividing, responsive to the amount of data exceeding the flow size threshold, the data into a set of chunks, each chunk in the set of chunks being of a chunk size;   computer usable code for selecting, according to a mapping selection rule, from a set of selected label mappings, a subset of selected label mapping, wherein each label mapping in the subset of selected label mappings maps an original label used in the data to a different virtual label according to the label mapping;   computer usable code for evaluating, at the application, for a first chunk in the set of chunks, whether by routing the first chunk to a first networking component corresponding to a first virtual label from a first label mapping in the subset of selected label mappings, a fraction of the amount of data that will have been routed to the first component will exceed a mapping threshold;   computer usable code for replacing, responsive to the evaluating being affirmative, the original label in first chunk with a second virtual label from a second label mapping in the subset of selected label mappings; and   computer usable code for routing the first chunk to a second networking component corresponding to the second virtual label at the time of the routing.   
     
     
         9 . The computer usable program product of  claim 8 , further comprising:
 computer usable code for evaluating, at the application, for a second chunk in the set of chunks, whether by routing the second chunk to the second networking component, a second fraction of the amount of data that will have been routed to the second component will exceed the mapping threshold;   computer usable code for replacing, responsive to the evaluating being negative, the original label in second chunk with the second virtual label; and   computer usable code for routing the second chunk to the second networking component corresponding to the second virtual label at the time of the routing.   
     
     
         10 . The computer usable program product of  claim 8 , wherein the original label is usable to transmit the data to a receiver application executing in a receiver data processing system, and wherein the virtual label changeably associated with a networking component in a data network used for transmitting the data during a period in which the transmitting occurs. 
     
     
         11 . The computer usable program product of  claim 8 , further comprising:
 computer usable code for selecting the set of selected label mappings from a set of configured label mappings, wherein the set of configured label mappings comprises a mapping from each original label that can be received at the application in the sender data processing system to a subset of a set of virtual labels.   
     
     
         12 . The computer usable program product of  claim 8 , further comprising:
 computer usable code for selecting the chunk size according to a value configured in a chunk size parameter.   
     
     
         13 . The computer usable program product of  claim 8 , further comprising:
 computer usable code for selecting the chunk size according to a value configured in a chunk time parameter, wherein the chunk size corresponds to an amount of data received at the application for transmission during a period equal to the value of the chunk time parameter.   
     
     
         14 . The computer usable program product of  claim 8 , further comprising:
 computer usable code for selecting the chunk size according to a value configured in a flowlet parameter, wherein the chunk size corresponds to an amount of data received at the application for transmission during a number of transmission bursts equal to the value of the flowlet parameter.   
     
     
         15 . The computer usable program product of  claim 8 , wherein the computer usable code is stored in a computer readable storage device in a data processing system, and wherein the computer usable code is transferred over a network from a remote data processing system. 
     
     
         16 . The computer usable program product of  claim 8 , wherein the computer usable code is stored in a computer readable storage device in a server data processing system, and wherein the computer usable code is downloaded over a network to a remote data processing system for use in a computer readable storage device associated with the remote data processing system. 
     
     
         17 . A data processing system for host-based load balancing of network traffic, the data processing system comprising:
 a storage device, wherein the storage device stores computer usable program code; and   a processor, wherein the processor executes the computer usable program code, and wherein the computer usable program code comprises:   computer usable code for determining, at an application executing at a sender data processing system, whether an amount of data to be transmitted from the sender data processing system exceeds a flow size threshold;   computer usable code for dividing, responsive to the amount of data exceeding the flow size threshold, the data into a set of chunks, each chunk in the set of chunks being of a chunk size;   computer usable code for selecting, according to a mapping selection rule, from a set of selected label mappings, a subset of selected label mapping, wherein each label mapping in the subset of selected label mappings maps an original label used in the data to a different virtual label according to the label mapping;   computer usable code for evaluating, at the application, for a first chunk in the set of chunks, whether by routing the first chunk to a first networking component corresponding to a first virtual label from a first label mapping in the subset of selected label mappings, a fraction of the amount of data that will have been routed to the first component will exceed a mapping threshold;   computer usable code for replacing, responsive to the evaluating being affirmative, the original label in first chunk with a second virtual label from a second label mapping in the subset of selected label mappings; and   computer usable code for routing the first chunk to a second networking component corresponding to the second virtual label at the time of the routing.   
     
     
         18 . The data processing system of  claim 17 , further comprising:
 computer usable code for evaluating, at the application, for a second chunk in the set of chunks, whether by routing the second chunk to the second networking component, a second fraction of the amount of data that will have been routed to the second component will exceed the mapping threshold;   computer usable code for replacing, responsive to the evaluating being negative, the original label in second chunk with the second virtual label; and   computer usable code for routing the second chunk to the second networking component corresponding to the second virtual label at the time of the routing.   
     
     
         19 . The data processing system of  claim 17 , wherein the original label is usable to transmit the data to a receiver application executing in a receiver data processing system, and wherein the virtual label changeably associated with a networking component in a data network used for transmitting the data during a period in which the transmitting occurs. 
     
     
         20 . The data processing system of  claim 17 , further comprising:
 computer usable code for selecting the set of selected label mappings from a set of configured label mappings, wherein the set of configured label mappings comprises a mapping from each original label that can be received at the application in the sender data processing system to a subset of a set of virtual labels.

Join the waitlist — get patent alerts

Track US2016212055A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.