IP Library Granted Patent US 12681762
Granted Patent B2
US 12681762 · App. 18/160,339 · Granted Jul 14, 2026

Affinity data system for data management

Inventors: Mayank Sharma (Bengaluru, IN); Aditi Bhattacharya (Kolkata, IN)
Assignee: International Business Machines Corporation
G06F9/5027G06F9/48G06F9/4806G06F9/4843G06F9/4881G06F9/50H04L45/12H04L45/122H04L45/123
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12681762
App. No.
18/160,339
Granted
Jul 14, 2026
Kind
B2
Abstract

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.

Claims (63)

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.