Affinity data system for data management
View Patent ↗A computer implemented method determines resource affinity for an application is provided. A number of processor units determine connections in affinity data for the workloads for an application. The number of processor units assign weights to the connections based on a number of hops for the connections. The weights indicate the affinity to components related to the set of workloads.
1 . A computer implemented method comprising:
collecting, by a number of processor units, affinity data by monitoring existing communication connections between servers actively processing a set of workloads for an application over a rolling time window;
determining, by the number of processor units, the existing communication connections in the collected affinity data for the set of workloads, wherein each connection in the affinity data identifies at least a server name, an application name, a source IP address, and a destination IP address associated with the set of workloads for the application; and
assigning, by the number of processor units, weights to the connections based on a number of hops between the servers for the connections, wherein a lesser number of hops between the servers corresponds to a lower weight and a higher level of affinity, such that the weights indicate a degree of affinity of the servers and their associated components to the application; and
using, by the number of processor units, the weights to identify components having an affinity to the application that satisfies a threshold affinity value for migration of the application to a target environment.
2 . The computer implemented method of claim 1 further comprising:
collecting, by the number of processor units, the affinity data for incoming connections and outgoing connections using a rolling window.
3 . The computer implemented method of claim 1 further comprising:
collecting, by the number of processor units, the affinity data from a first number of sources; and
collecting, by the number of processor units, the affinity data from a second number of sources iteratively.
4 . The computer implemented method of claim 1 further comprising:
migrating, by the number of processor units, the application; and
migrating, by the number of processor units, selected data for a current set of workloads for the application based on an affinity of the selected data to the application.
5 . The computer implemented method of claim 4 further comprising:
migrating, by the number of processor units, a number of applications with the application as an application group based on an affinity of the number of applications to the application.
6 . The computer implemented method of claim 5 , further comprising:
placing, by the number of processor units, the number of applications in the application group that have a weight equal to or less than a threshold distance.
7 . The computer implemented method of claim 1 , wherein determining the connections in the collected affinity data comprises determining at least one of:
an incoming affinity from affinity data of incoming communications received by the application from other components;
an outgoing affinity from affinity data of outgoing communications made by the application to other components;
an internal affinity from affinity data of communications between the application and other components within a same computer system as the application; or
a loop-in affinity from affinity data of communications in which the application makes a call that travels through a sequence of components and the application receives a return communication from a last component in the sequence.
8 . The computer implemented method of claim 1 , wherein each connection in the affinity data further comprises a timestamp, and wherein the number of processor units uses the timestamp in a rollout prediction analysis for time-based workloads.
9 . The computer implemented method of claim 1 , wherein collecting the affinity data comprises:
collecting static affinity data from at least one of a configuration file, a database communication table, or a code definition for the application; and
collecting dynamic affinity data iteratively from at least one of a system log, a system dump, a TCP/IP command dump, or a trace.
10 . A computer system comprising:
a number of processor units, wherein the number of processor units executes program instructions to:
collect affinity data by monitoring existing communication connections between servers actively processing a set of workloads for an application over a rolling time window;
determine the existing communication connections in the collected affinity data for the set of workloads, wherein each connection in the affinity data identifies at least a server name, an application name, a source IP address, and a destination IP address associated with the set of workloads for the application; and
assign weights to the connections based on a number of hops between the servers for the connections, wherein a lesser number of hops between the servers corresponds to a lower weight and a higher level of affinity, such that the weights indicate a degree of affinity of the servers and their associated components to the application; and
using the weights to identify components having an affinity to the application that satisfies a threshold affinity value for migration of the application to a target environment.
11 . The computer system of claim 10 , wherein the number of processor units executes the program instructions to:
collect the affinity data for incoming connections and outgoing connections using a rolling window.
12 . The computer system of claim 10 , wherein the number of processor units executes the program instructions to:
collect the affinity data from a first number of sources; and
collect the affinity data from a second number of sources iteratively.
13 . The computer system of claim 10 , wherein the number of processor units executes the program instructions to:
migrate the application; and
migrate selected data for a current set of workloads for the application based on an affinity of the selected data to the application.
14 . The computer system of claim 13 , wherein the number of processor units executes the program instructions to:
migrate a number of applications with the application as an application group based on an affinity of the applications to the application.
15 . The computer system of claim 14 , wherein the number of processor units executes the program instructions to:
place the number of applications in the application group that have a weight equal to or less than a threshold distance.
16 . The computer system of claim 10 , wherein the operations of determining the connections in the collected affinity data comprise determining at least one of:
an incoming affinity from affinity data of incoming communications received by the application from other components;
an outgoing affinity from affinity data of outgoing communications made by the application to other components;
an internal affinity from affinity data of communications between the application and other components within a same computer system as the application; or
a loop-in affinity from affinity data of communications in which the application makes a call that travels through a sequence of components and the application receives a return communication from a last component in the sequence.
17 . The computer system of claim 10 , wherein each connection in the affinity data further comprises a timestamp, and wherein the number of processor units uses the timestamp in a rollout prediction analysis for time-based workloads.
18 . The computer system of claim 10 , wherein the operations of collecting the affinity data comprise:
collecting static affinity data from at least one of a configuration file, a database communication table, or a code definition for the application; and
collecting dynamic affinity data iteratively from at least one of a system log, a system dump, a TCP/IP command dump, or a trace.
19 . A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer system to cause the computer system to perform operations comprising:
collecting affinity data by monitoring existing communication connections between servers actively processing a set of workloads for an application over a rolling time window;
determining the existing communication connections in the collected affinity data for the set of workloads, wherein each connection in the affinity data identifies at least a server name, an application name, a source IP address, and a destination IP address associated with the set of workloads for the application; and
assigning weights to the connections based on a number of hops between the servers for the connections, wherein a lesser number of hops between the servers corresponds to a lower weight and a higher level of affinity, such that the weights indicate a degree of affinity of the servers and their associated components to the application; and
using the weights to identify components having an affinity to the application that satisfies a threshold affinity value for migration of the application to a target environment.
20 . The computer program product of claim 19 , wherein the program instructions further cause the computer system to perform operations comprising determining at least one of:
an incoming affinity from affinity data of incoming communications received by the application from other components;
an outgoing affinity from affinity data of outgoing communications made by the application to other components;
an internal affinity from affinity data of communications between the application and other components within a same computer system as the application; or
a loop-in affinity from affinity data of communications in which the application makes a call that travels through a sequence of components and the application receives a return communication from a last component in the sequence.