# US 2019/0356731 A1 · Optimizing dynamical resource allocations based on locality of resources in disaggregated data centers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0356731 A1
- Document ID: US20190356731A1
- Status: Published application
- Kind: A1
- Application number: 15/982,604
- Filed: 2018-05-17
- Published: 2019-11-21
- Earliest claimed: 2018-05-17
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: John A. BIVENS; Eugen SCHENFELD; Valentina SALAPURA; Ruchi MAHINDRU; Min LI
- Web page: https://patentgrep.com/patent/US20190356731A1

## CPC

- H04L 41/0823: characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability (for optimising operational conditions of wireless networks H04W24/02)
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 41/5019: Ensuring fulfilment of SLA
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 43/16: Threshold monitoring
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments for optimizing dynamic resource allocations in a disaggregated computing environment. A data heat map associated with a data access pattern of data elements associated with a workload is constructed. A locality of the data elements associated with the workload within the disaggregated computing environment is determined using the data heat map. Particular resources within pools of resources are assigned to a dynamically constructed disaggregated system in real-time based upon the locality of the data elements in relation to other ones of the resources within the pools of resources such that the dynamically constructed disaggregated system executes the workload using an optimized set of the particular resources.

## Claims

### Claim 1

A method for optimizing dynamic resource allocations in a disaggregated computing environment, by a processor device, comprising:
constructing a data heat map associated with a data access pattern of data elements associated with a workload;
determining a locality of the data elements associated with the workload within the disaggregated computing environment using the data heat map; and
assigning particular resources within pools of resources to a dynamically constructed disaggregated system in real-time based upon the locality of the data elements in relation to other ones of the resources within the pools of resources; wherein the dynamically constructed disaggregated system executes the workload using an optimized set of the particular resources.

### Claim 2 (depends on 1)

The method of claim 1, wherein the particular resources comprise respective memory devices and processors; and
further including determining, based upon the data access pattern of the data heat map, that the workload is a memory-dependent workload, the memory-dependent workload primarily accessing the data elements associated with the workload from the memory devices.

### Claim 3 (depends on 2)

The method of claim 2, further including, upon detecting an optimization triggering event, iterating through each memory unit of the memory devices assigned to a lower priority workload at a closest memory hop to the ones of the processors in attempt to reallocate available memory from the memory devices to the workload.

### Claim 4 (depends on 3)

The method of claim 3, further including, upon determining no available memory exists which is assigned to the lower priority workload, performing a priority memory reallocation procedure to attempt to free up memory assigned to an equivalent priority workload.

### Claim 5 (depends on 4)

The method of claim 4, further including, pursuant to performing the priority memory reallocation procedure, iterating through each memory unit of the memory devices assigned to the equivalent priority workload; wherein a candidate memory unit for reallocation to the workload exhibits cache-friendly behavior having cache hits above a predetermined threshold.

### Claim 6 (depends on 5)

The method of claim 5, further including, upon identifying the candidate memory unit for reallocation, copying data contained in the candidate memory unit to an available memory unit at a further memory hop; and
updating a candidate system containing the candidate memory unit to point to the data copied to the available memory unit at the further memory hop.

### Claim 7 (depends on 6)

The method of claim 6, further including freeing the candidate memory unit from the candidate system and reallocating the candidate memory unit to one of the memory devices associated with the workload.

### Claim 8 (depends on 7)

The method of claim 7, further including, subsequent to moving the candidate memory unit to the available memory unit at the further memory hop and updating the candidate system:
when the candidate system is within a predetermined percentage of failing to meet a service level agreement (SLA), increasing a clock speed of a respective processor of the candidate system to increase cache hits of the equivalent priority workload.

### Claim 9

A system for optimizing dynamic resource allocations in a disaggregated computing environment, the system comprising:
a processor device executing instructions stored in a memory device, wherein the processor device:
constructs a data heat map associated with a data access pattern of data elements associated with a workload;
determines a locality of the data elements associated with the workload within the disaggregated computing environment using the data heat map; and
assigns particular resources within pools of resources to a dynamically constructed disaggregated system in real-time based upon the locality of the data elements in relation to other ones of the resources within the pools of resources; wherein the dynamically constructed disaggregated system executes the workload using an optimized set of the particular resources.

### Claim 10 (depends on 9)

The system of claim 9, wherein the particular resources comprise respective memory devices and processors; and
wherein the processor device determines, based upon the data access pattern of the data heat map, that the workload is a memory-dependent workload, the memory-dependent workload primarily accessing the data elements associated with the workload from the memory devices.

### Claim 11 (depends on 10)

The system of claim 10, wherein the processor device, upon detecting an optimization triggering event, iterates through each memory unit of the memory devices assigned to a lower priority workload at a closest memory hop to the ones of the processors in attempt to reallocate available memory from the memory devices to the workload.

### Claim 12 (depends on 11)

The system of claim 11, wherein the processor device, upon determining no available memory exists which is assigned to the lower priority workload, performs a priority memory reallocation procedure to attempt to free up memory assigned to an equivalent priority workload.

### Claim 13 (depends on 12)

The system of claim 12, wherein the processor device, pursuant to performing the priority memory reallocation procedure, iterates through each memory unit of the memory devices assigned to the equivalent priority workload; wherein a candidate memory unit for reallocation to the workload exhibits cache-friendly behavior having cache hits above a predetermined threshold.

### Claim 14 (depends on 13)

The system of claim 13, wherein the processor device, upon identifying the candidate memory unit for reallocation, copies data contained in the candidate memory unit to an available memory unit at a further memory hop; and
updates a candidate system containing the candidate memory unit to point to the data copied to the available memory unit at the further memory hop.

### Claim 15 (depends on 14)

The system of claim 14, wherein the processor device frees the candidate memory unit from the candidate system and reallocates the candidate memory unit to one of the memory devices associated with the workload.

### Claim 16 (depends on 15)

The system of claim 15, wherein the processor device, subsequent to moving the candidate memory unit to the available memory unit at the further memory hop and updating the candidate system:
when the candidate system is within a predetermined percentage of failing to meet a service level agreement (SLA), increases a clock speed of a respective processor of the candidate system to increase cache hits of the equivalent priority workload.

### Claim 17

A computer program product for optimizing dynamic resource allocations in a disaggregated computing environment, by a processor device, the computer program product embodied on a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
an executable portion that constructs a data heat map associated with a data access pattern of data elements associated with a workload;
an executable portion that determines a locality of the data elements associated with the workload within the disaggregated computing environment using the data heat map; and
an executable portion that assigns particular resources within pools of resources to a dynamically constructed disaggregated system in real-time based upon the locality of the data elements in relation to other ones of the resources within the pools of resources; wherein the dynamically constructed disaggregated system executes the workload using an optimized set of the particular resources.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the particular resources comprise respective memory devices and processors; and
an executable portion that determines, based upon the data access pattern of the data heat map, that the workload is a memory-dependent workload, the memory-dependent workload primarily accessing the data elements associated with the workload from the memory devices.

### Claim 19 (depends on 18)

The computer program product of claim 18, further including an executable portion that, upon detecting an optimization triggering event, iterates through each memory unit of the memory devices assigned to a lower priority workload at a closest memory hop to the ones of the processors in attempt to reallocate available memory from the memory devices to the workload.

### Claim 20 (depends on 19)

The computer program product of claim 19, further including an executable portion that, upon determining no available memory exists which is assigned to the lower priority workload, performs a priority memory reallocation procedure to attempt to free up memory assigned to an equivalent priority workload.

### Claim 21 (depends on 20)

The computer program product of claim 20, further including an executable portion that, pursuant to performing the priority memory reallocation procedure, iterates through each memory unit of the memory devices assigned to the equivalent priority workload; wherein a candidate memory unit for reallocation to the workload exhibits cache-friendly behavior having cache hits above a predetermined threshold.

### Claim 22 (depends on 21)

The computer program product of claim 21, further including an executable portion that, upon identifying the candidate memory unit for reallocation, copies data contained in the candidate memory unit to an available memory unit at a further memory hop; and
an executable portion that updates a candidate system containing the candidate memory unit to point to the data copied to the available memory unit at the further memory hop.

### Claim 23 (depends on 22)

The computer program product of claim 22, further including an executable portion that frees the candidate memory unit from the candidate system and reallocates the candidate memory unit to one of the memory devices associated with the workload.

### Claim 24 (depends on 23)

The computer program product of claim 23, further including an executable portion that, subsequent to moving the candidate memory unit to the available memory unit at the further memory hop and updating the candidate system:
when the candidate system is within a predetermined percentage of failing to meet a service level agreement (SLA), increases a clock speed of a respective processor of the candidate system to increase cache hits of the equivalent priority workload.
