Remote Direct Memory Operations Execution Candidates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in maintaining high availability of remote server operations, especially when the remote server experiences hardware or software failures, as they are limited to simple memory access operations and fail when performing complex tasks like calculating averages.
Innovation Solution
Implementing Remote Direct Memory Operations (RDMOs) that allow multiple execution candidates from different reliability domains within a machine to perform complex operations, such as computing averages, even when the remote server is not fully functional, by using network interface controllers with firmware or FPGA support, and enabling fallback or parallel execution candidates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If Remote Direct Memory Access (RDMA) is used to retrieve data from volatile memory of a remote server, then data retrieval speed and efficiency are improved, but the system fails when the remote server experiences hardware or software failures
Solution Approach 1:
The patent segments the execution of remote operations into multiple independent execution candidates (e.g., different applications, virtual machines, or containers on the same physical server). This segmentation allows the system to attempt operations through multiple independent paths, so if one execution candidate fails due to server issues, other candidates can still complete the operation, thereby improving reliability while maintaining fast RDMA-based data access.
2Adaptability or versatility
If Remote Procedure Calls (RPCs) are used to perform complex operations on remote server data, then sophisticated operations can be performed, but the operations fail when the remote server is not fully functional
Solution Approach 1:
The patent performs preliminary actions by pre-positioning multiple execution candidates in different reliability domains before failure occurs. These execution candidates are prepared in advance with the necessary capabilities to perform complex operations, so when a server failure occurs, the system can immediately switch to an available execution candidate without needing to re-establish connections or reconfigure systems, thus maintaining both operational complexity and reliability.
Solution Approach 2:
The patent introduces execution candidates as intermediary entities that mediate between the client and the remote server data. These intermediaries can perform complex operations locally or through alternative paths when the primary server is unavailable, acting as a buffer that maintains operation availability even when the original server fails.
3Reliability
If multiple execution candidates from different reliability domains are implemented to perform complex operations, then system availability during failures is improved, but device complexity increases
Solution Approach 1:
The patent implements execution candidates that can universally handle multiple types of operations across different reliability domains. Rather than creating specialized components for each failure scenario, the system uses multi-functional execution candidates that can adapt to various operation types and failure modes, reducing overall system complexity while maintaining high availability.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method of performing an operation on a first computing device comprises executing, on the first computing device, an application capable of performing the operation. The first computing device includes a network interface controller with an execution candidate capable of interpreting instructions which, when interpreted, cause performance of the operation. The application and the execution candidate have access to a shared memory of the first computing device. The operation requires multiple accesses to data in the shared memory. A requesting entity executing on a second computing device that is remote relative to the first computing device selects a target from among the application and the execution candidate. Responsive to the application being selected as the target, the requesting entity sends the application a request to perform the operation. Responsive to the execution candidate being selected as the target, the requesting entity causes the execution candidate to interpret instructions which, when interpreted by the execution candidate, cause performance of the operation. One or more non-transitory computer-readable media and a system comprise corresponding elements.