Host-based load balancing of network traffic
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-modifiedWhat 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.