Application Live-Migration and Automated Recovery in Distributed Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solutions for managing multiple applications on a cluster of servers fail to effectively address redundancy and load-balancing issues in high-latency networked systems, particularly due to single points of failure, performance overhead, geographical limitations, and manual intervention requirements.

Innovation Solution

A server configured to operate in either a master or slave role, with logic for replicating data across multiple servers and autonomously switching roles based on events such as failures or load changes, using snapshot replication and heartbeats to maintain data consistency and balance load across the cluster.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If virtualisation is used to replicate server state to a second physical host, then application recovery capability is improved, but performance overhead increases and geographical flexibility is reduced

Engineering Contradiction:
Improveapplication recovery capabilityVSAvoidperformance overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the replication process by separating the master server that generates data changes from slave servers that receive and store replicas. This segmentation allows the master server to continue operating at full performance while replication occurs asynchronously in the background, eliminating the performance overhead associated with synchronous virtualization-based replication.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by continuously maintaining replica copies of application data on slave servers before failures occur. When a master server fails, these pre-positioned replicas enable immediate failover without requiring real-time synchronization, thus improving reliability while avoiding the continuous performance penalty of synchronous replication.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If manual intervention is used to move applications between servers, then system complexity is reduced, but recovery time increases and productivity decreases

Engineering Contradiction:
Improvesystem complexityVSAvoidrecovery time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The system implements automated feedback mechanisms where slave servers continuously monitor the health and availability of the master server. When a failure is detected, the feedback loop triggers automatic failover procedures, selecting an appropriate slave server to take over the master's role without requiring manual intervention, thus reducing recovery time while maintaining manageable system complexity through standardized protocols.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system enables self-service by empowering slave servers to autonomously detect master server failures and initiate failover procedures. The slave servers automatically update their status, assume the master role, and continue serving applications, eliminating the need for manual intervention and significantly reducing recovery time while keeping system complexity within acceptable bounds through automated decision-making logic.

Inventive Principle:
Principle #25Self-service

3Productivity

If a shared storage backend is used in a classical cluster, then load distribution is improved, but single points of failure increase and device complexity increases

Engineering Contradiction:
Improveload distributionVSAvoidsingle points of failure
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system extracts the storage dependency from the cluster architecture by implementing file system replication at the application layer rather than relying on a shared storage backend. Each slave server maintains its own local copy of the replicated file system, eliminating the shared storage infrastructure and thereby removing the single points of failure associated with SAN hardware, switches, and storage controllers while preserving load distribution capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

4Manufacturing precision

If synchronous replication is used to ensure data consistency, then data integrity is improved, but network bandwidth consumption increases and speed decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidreplication speed
Core Design Contradiction:
Manufacturing precisionVSSpeed

Solution Approach 1:

The system employs periodic action by implementing asynchronous replication where slave servers receive and apply data changes at discrete intervals rather than requiring synchronous confirmation for each operation. This approach maintains data consistency over time while allowing the master server to continue operating at full speed, as replication occurs in the background without blocking primary operations, thus resolving the contradiction between data consistency and replication speed.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11250024B2System for live-migration and automated recovery of applications in a distributed system
Publication Date: 2022.02.15 GOOGLE LLC
  • US11250024B2 patent drawing
  • US11250024B2 patent drawing
  • US11250024B2 patent drawing

AI summary

A method and apparatus for distribution of applications amongst a number of servers, ensuring that changes to application data on a master for that application are asynchronously replicated to a number of slaves for that application. Servers may be located in geographically diverse locations; the invention permits data replication over high-latency and lossy network connections and failure-tolerance under hardware and network failure conditions. Access to applications is mediated by a distributed protocol handler which allows any request for any application to be addressed to any server, and which, when working in tandem with the replication system, pauses connections momentarily to allow seamless, consistent live-migration of applications and their state between servers. Additionally, a system which controls the aforementioned live-migration based on dynamic measurement of load generated by each application and the topological preferences of each application, in order to automatically keep servers at an optimum utilisation level.