Transparent High Availability for Distributed Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current enterprise computer systems lack mechanisms for providing high availability and automatic fault detection and recovery for distributed applications across multiple computers, requiring custom coding, hardware, and proprietary solutions, which are expensive and not transparent to clients.

Innovation Solution

A system-level high-availability service that automatically detects and recovers distributed applications by injecting registration code into sub-programs, coordinating backup nodes, and maintaining transparent migration, ensuring fault tolerance without custom coding or specialized hardware, and protecting against node, network, and process faults.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If customized applications run on custom hardware to achieve high availability, then reliability is improved, but device complexity and cost increase

Engineering Contradiction:
Improvehigh availabilityVSAvoidcustom hardware
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates virtual copies of computing instances that can be rapidly deployed as backups. These virtual copies maintain the same software environment and configuration as the original instance, enabling automatic failover without requiring custom hardware. The virtualization layer allows multiple virtual instances to share physical hardware resources, reducing complexity while maintaining high availability.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a virtualization layer as an intermediary between the physical hardware and the application software. This virtualization layer abstracts the underlying hardware complexity and provides a standardized interface for deploying and managing computing instances. The virtual machine monitor (VMM) manages resource allocation and enables rapid instance creation and migration, eliminating the need for custom hardware while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If distributed applications run across multiple servers, then reliability is improved, but ease of operation deteriorates due to lack of protection mechanisms

Engineering Contradiction:
Improvedistributed application availabilityVSAvoidfault detection and recovery
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements a health monitoring system that continuously checks the status of distributed application instances across multiple servers. When a failure is detected, the system automatically triggers failover procedures to redirect traffic to healthy instances. This feedback mechanism simplifies operation by automatically detecting and responding to failures without requiring manual intervention, while maintaining reliability through distributed deployment.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent enables distributed applications to automatically manage their own failover and recovery processes. The system includes self-healing capabilities where instances can automatically detect their own failures and trigger recovery procedures. The load balancer and virtualization layer work together to automatically redistribute traffic, eliminating the need for manual fault detection and recovery operations.

Inventive Principle:
Principle #25Self-service

3Reliability

If automatic fault detection and recovery is implemented for distributed applications, then reliability is improved, but system complexity increases

Engineering Contradiction:
Improveautomatic fault recoveryVSAvoidprotection mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal virtualization platform that provides multiple functions including fault detection, automatic failover, load balancing, and instance management through a single integrated system. The virtual machine monitor and virtualization layer serve multiple purposes simultaneously, reducing overall system complexity while enabling automatic fault recovery. The same virtualization infrastructure that enables distributed deployment also provides the management plane for automatic failover.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Ease of operation

If transparent high availability is provided without custom coding, then ease of operation is improved, but reliability may deteriorate without specialized mechanisms

Engineering Contradiction:
Improvetransparent migrationVSAvoidfault tolerance
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent creates exact virtual copies of application instances that can be rapidly deployed as backups. These copies include all necessary software environments, configurations, and state information, enabling transparent failover without requiring custom application coding. The virtualization layer handles the complexity of maintaining these copies, providing both transparency and reliability simultaneously.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent pre-configures backup instances and maintains them in a ready state through the virtualization platform. When failures occur, these pre-prepared instances can immediately take over without requiring custom failover logic in the application code. The system maintains a pool of standby virtual instances that can be rapidly activated, providing transparent high availability while maintaining reliability through pre-established protection mechanisms.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9424143B2Method and system for providing high availability to distributed computer applications
Publication Date: 2016.08.23 RED HAT INC
  • US9424143B2 patent drawing
  • US9424143B2 patent drawing
  • US9424143B2 patent drawing

AI summary

Method, system, apparatus and/or computer program for achieving transparent integration of high-availability services for distributed application programs. Loss-less migration of sub-programs from their respective primary nodes to backup nodes is performed transparently to a client which is connected to the primary node. Migration is performed by high-availability services which are configured for injecting registration codes, registering distributed applications, detecting execution failures, executing from backup nodes in response to failure, and other services. High-availability application services can be utilized by distributed applications having any desired number of sub-programs without the need of modifying or recompiling the application program and without the need of a custom loader. In one example embodiment, a transport driver is responsible for receiving messages, halting and flushing of messages, and for issuing messages directing sub-programs to continue after checkpointing.