Hardware Controller Backup Memory for Network Failure Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Hardware-assisted memory disaggregation in data centers faces challenges due to network failures and latency issues, which can trigger machine check exceptions and system crashes if data is not retrieved from remote servers within a specified time window.
Innovation Solution
Incorporating a backup memory component, such as low-cost non-volatile memory, and a HW controller cache to maintain a local copy of remote memory data, allowing for graceful recovery and data retrieval within the required time window, thereby avoiding crashes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hardware-assisted memory disaggregation is implemented using remote DRAM, then memory utilization and cost efficiency are improved, but system reliability deteriorates due to network failures triggering machine check exceptions
Solution Approach 1:
The system performs preliminary actions by maintaining a local copy of remote memory data in non-volatile memory before network failures occur. This allows the HW controller to quickly retrieve data from local non-volatile memory when network failures happen, preventing machine check exceptions and improving system reliability without significantly increasing operational complexity
Solution Approach 2:
The patent applies beforehand cushioning by introducing non-volatile memory as a buffer between the HW controller and remote DRAM. This cushioning layer absorbs network failures and latency spikes, allowing the system to maintain operations during network issues while preserving the overall memory disaggregation architecture
2Reliability
If DRAM is provisioned on each server to account for worst case memory usage, then system reliability is improved, but total cost of ownership increases
Solution Approach 1:
The system creates a local copy of remote memory data in non-volatile memory that can be quickly accessed during network failures. This copying mechanism allows the system to maintain memory availability comparable to having local DRAM while using cheaper non-volatile memory and avoiding the need to provision excessive memory capacity on each server
Solution Approach 2:
The non-volatile memory serves multiple functions: it acts as a backup for remote memory during network failures, provides fast recovery capability, and enables memory disaggregation to proceed. This multi-functionality allows the system to achieve reliability similar to having local DRAM while maintaining the cost benefits of memory disaggregation
3Productivity
If the HW controller retrieves data from remote memory over the network, then memory utilization is improved, but response time deteriorates due to network latency
Solution Approach 1:
The system performs preliminary actions by maintaining a local copy of remote memory data in non-volatile memory. When data is needed, the HW controller can quickly retrieve it from local non-volatile memory instead of fetching it over the network, significantly reducing data retrieval time while maintaining high memory utilization through disaggregation
Data Source
AI summary
Techniques for implementing hardware-assisted memory disaggregation with recovery from network failures/problems are provided. In one set of embodiments, a hardware controller of a computer system can maintain a copy of a “remote memory” of the computer system (i.e., a section of the physical memory address space of the computer system that maps to a portion of the physical system memory of a remote computer system) in a local backup memory. The backup memory may be implemented using a non-volatile memory that is slower, but also less expensive, than conventional dynamic random-access memory (DRAM). Then, if the hardware controller is unable to retrieve data in the remote memory from the remote computer system within a specified time window due to, e.g., a network failure or other problem, the hardware controller can retrieve the data from the backup memory, thereby avoiding a hardware error condition (and potential application/system crash).


