Distributed application framework that uses network and application awareness for placing data
First Claim
1. A method, comprising:
- receiving data placement information from a distributed application that identifies a source node of data in a network and a list of potential destination nodes in the network for the distributed application to place the data;
for each potential destination node, determining a network latency associated with transferring the data from the source node to the potential destination node using network metrics associated with the network; and
sending the determined network latencies to the distributed application, such that the distributed application can assign the data to one of the potential destination nodes based on the determined network latencies;
wherein the determining network latency comprises determining an overall latency (OL) from the source node (SN) to the potential destination node (PDN), as follows;
OL=K×
[A×
(Number of Hops Between SN and PDN)]×
[B×
(Aggregate Latency of Network Elements associated with Hops Between SN and PDN)]×
[C×
(Aggregate Time for Transferring Data based on Data Size and Network Bandwidth of Each Network Element associated with Hops Between SN and PDN]×
[D×
(Aggregate Time for Transferring Data based on Data Size and Planned Available Bandwidth Metric of Each Network Element associated with Hops Between SN and PDN)]×
[E×
(an estimate of input/output bandwidth for PDN for a defined time in the future)]×
[F×
(current input/output operations per second PDN)];
where A, B, C, D, E, F and K are non-zero constants.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed application framework, along with related systems and/or methods described herein, can intelligently place data using network knowledge. An exemplary method can include receiving data placement information from a distributed application that identifies a source node of data in a network and a list of potential destination nodes in the network for the distributed application to place the data; for each potential destination node, determining a network latency associated with transferring the data from the source node to the potential destination node using network metrics associated with the network; and sending the determined network latencies to the distributed application, such that the distributed application can assign the data to one of the potential destination nodes based on the determined network latencies.
398 Citations
20 Claims
-
1. A method, comprising:
-
receiving data placement information from a distributed application that identifies a source node of data in a network and a list of potential destination nodes in the network for the distributed application to place the data; for each potential destination node, determining a network latency associated with transferring the data from the source node to the potential destination node using network metrics associated with the network; and sending the determined network latencies to the distributed application, such that the distributed application can assign the data to one of the potential destination nodes based on the determined network latencies; wherein the determining network latency comprises determining an overall latency (OL) from the source node (SN) to the potential destination node (PDN), as follows; OL=K×
[A×
(Number of Hops Between SN and PDN)]×
[B×
(Aggregate Latency of Network Elements associated with Hops Between SN and PDN)]×
[C×
(Aggregate Time for Transferring Data based on Data Size and Network Bandwidth of Each Network Element associated with Hops Between SN and PDN]×
[D×
(Aggregate Time for Transferring Data based on Data Size and Planned Available Bandwidth Metric of Each Network Element associated with Hops Between SN and PDN)]×
[E×
(an estimate of input/output bandwidth for PDN for a defined time in the future)]×
[F×
(current input/output operations per second PDN)];where A, B, C, D, E, F and K are non-zero constants. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. Logic encoded in non-transitory media that includes instructions for execution and when executed by a processor, is operable to perform operations comprising:
- receiving data placement information from a distributed application that identifies a source node of data in a network and a list of potential destination nodes in the network for the distributed application to place the data;
for each potential destination node, determining a network latency associated with transferring the data from the source node to the potential destination node using network metrics associated with the network; and sending the determined network latencies to the distributed application, such that the distributed application can assign the data to one of the potential destination nodes based on the determined network latencies; wherein the determining network latency comprises determining an overall latency (OL) from the source node (SN) to the potential destination node (PDN), as follows; OL=K×
[A×
(Number of Hops Between SN and PDN)]×
[B×
(Aggregate Latency of Network Elements associated with Hops Between SN and PDN)]×
[C×
(Aggregate Time for Transferring Data based on Data Size and Network Bandwidth of Each Network Element associated with Hops Between SN and PDN]×
[D×
(Aggregate Time for Transferring Data based on Data Size and Planned Available Bandwidth Metric of Each Network Element associated with Hops Between SN and PDN)]×
[E×
(an estimate of input/output bandwidth for PDN for a defined time in the future)]×
[F×
(current input/output operations per second PDN)];where A, B, C, D, E, F and K are non-zero constants. - View Dependent Claims (12, 13, 14, 15, 16)
- receiving data placement information from a distributed application that identifies a source node of data in a network and a list of potential destination nodes in the network for the distributed application to place the data;
-
17. An apparatus comprising:
-
a memory element for storing data; and a processor operable to execute instructions associated with the data, wherein the processor and the memory element cooperate such that the apparatus is configured for; receiving data placement information from a distributed application that identifies a source node of data in a network and a list of potential destination nodes in the network for the distributed application to place the data; for each potential destination node, determining a network latency associated with transferring the data from the source node to the potential destination node using network metrics associated with the network; and sending the determined network latencies to the distributed application, such that the distributed application can assign the data to one of the potential destination nodes based on the determined network latencies; wherein the determining network latency comprises determining an overall latency (OL) from the source node (SN) to the potential destination node (PDN), as follows; OL=K×
[A×
(Number of Hops Between SN and PDN)]×
[B×
(Aggregate Latency of Network Elements associated with Hops Between SN and PDN)]×
[C×
(Aggregate Time for Transferring Data based on Data Size and Network Bandwidth of Each Network Element associated with Hops Between SN and PDN]×
[D×
(Aggregate Time for Transferring Data based on Data Size and Planned Available Bandwidth Metric of Each Network Element associated with Hops Between SN and PDN)]×
[E×
(an estimate of input/output bandwidth for PDN for a defined time in the future)]×
[F×
(current input/output operations per second PDN)];where A, B, C, D, E, F and K are non-zero constants. - View Dependent Claims (18, 19, 20)
-
Specification