Memory Object Relocation for Transparent Server Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High availability computer systems face challenges in seamlessly transitioning from a primary to a secondary server during failures, especially when memory errors occur, leading to potential data inconsistencies and system interruptions.
Innovation Solution
A method where a primary server periodically checks and mirrors its memory changes to a secondary server, moving objects from error-prone memory locations to error-free locations, and designates a secondary server as the new primary upon failure, using a memory table to track and manage memory block errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory mirroring is implemented to ensure high availability, then system reliability is improved, but device complexity increases due to the need to track and manage memory changes between primary and secondary servers
Solution Approach 1:
The patent extracts the memory tracking and error detection functionality from the primary server's memory management system and implements it as a separate monitoring mechanism that operates independently. This allows the primary server to maintain simple memory access while the secondary server handles complex error tracking and recovery operations, resolving the contradiction between reliability and complexity.
Solution Approach 2:
The patent introduces a memory error detection and handling mechanism as an intermediary between the primary and secondary servers. This intermediary layer detects memory errors, determines their impact on failover readiness, and coordinates the failover process without requiring complex direct communication between the servers during normal operation, thus improving reliability while managing complexity.
2Reliability
If failover procedures are implemented to switch between primary and secondary servers, then system reliability is improved, but loss of time increases due to the interruption required during switching
Solution Approach 1:
The patent implements preliminary actions by continuously monitoring memory errors on the secondary server in advance of any failover event. The system pre-determines whether memory errors prevent successful failover and prepares appropriate responses beforehand. This allows for faster failover execution when needed, reducing the time loss during actual switching operations while maintaining high reliability.
Solution Approach 2:
The patent establishes a feedback mechanism where the secondary server continuously reports its memory error status to the primary server. This real-time feedback allows the primary server to make informed decisions about failover readiness and can trigger premature failover before actual failures occur, minimizing interruption time by having the transition already prepared and executed seamlessly.
3Manufacturing precision
If memory errors are detected and corrected by moving objects to different memory locations, then data consistency is improved, but productivity decreases due to the overhead of continuous memory monitoring and object relocation
Solution Approach 1:
The patent applies local quality by detecting and correcting memory errors only at specific locations where errors are actually present, rather than implementing comprehensive memory validation across the entire system. The error detection mechanism focuses resources on problematic memory blocks, moving objects only when necessary, thus maintaining data consistency where needed while minimizing the productivity overhead of continuous monitoring and relocation.
Data Source
AI summary
In an embodiment, a partition is executed at a primary server, wherein the partition accesses a first memory location at a first memory block address at the primary server. If a first corresponding memory location at a secondary server has an error, wherein the first corresponding memory location at the secondary server corresponds to the first memory location at the primary server, then an object is moved from the first memory location at the primary server to a second memory location at the primary server.


