Proxy Server Database Failover Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing large-scale messaging systems face challenges in implementing individual database failover and switchover, leading to outages when a single database fails, as they often retain characteristics of single-server solutions, making it difficult to provide high availability and rapid recovery.

Innovation Solution

A proxy server is introduced to facilitate database failover and switchover by detecting failures, activating redundant systems, and redirecting clients, while maintaining state and configuration information separately to ensure rapid recovery and minimal service disruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single database fails in existing large-scale messaging systems, then database recovery is needed, but service outage occurs for all databases associated with the failed server

Engineering Contradiction:
Improvedatabase availabilityVSAvoidservice continuity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the coupling between servers and databases by introducing a proxy server layer. Instead of direct server-database associations, the proxy server mediates all connections, allowing individual databases to be managed independently. This segmentation enables failover of single databases without affecting other databases or requiring full server redundancy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The proxy server acts as an intermediary between clients and actual database servers. It maintains state information about which databases are active and on which servers, and redirects client connections accordingly. This intermediary layer decouples the client from the physical database location, enabling seamless failover and switchover operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If DNS propagation is used for database failover, then server redundancy is achieved, but failover time takes hours or days

Engineering Contradiction:
Improveservice redundancyVSAvoidfailover time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The proxy server performs preliminary actions by maintaining up-to-date state information about database locations and availability. Before failover is needed, the system already has knowledge of redundant database instances and their locations. When failover is required, the proxy server can immediately redirect connections without waiting for DNS propagation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses dynamic connection routing through the proxy server, which can change connection targets in real-time based on database availability. Unlike static DNS records that require propagation delays, the proxy server dynamically updates connection information client-side, enabling immediate failover response.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8924589B2Adding individual database failover/switchover to an existing storage component with limited impact
Publication Date: 2014.12.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8924589B2 patent drawing
  • US8924589B2 patent drawing
  • US8924589B2 patent drawing

AI summary

High availability architecture that employs a mid-tier proxy server to route client communications to active data store instances in response to failover and switchover. The proxy server includes an active manager client that interfaces to an active manager in each of the backend servers. State information and configuration information are maintained separately and according to semantics consistent with needs of corresponding data, the configuration information changing less frequently and more available, the state information changing more frequently and less available. The active manager indicates to the proxy server which of the data storage instances is the currently the active instance. In the event that the currently active instance is inactive, the proxy server selects a different backend server that currently hosts the active data store instance. Client communications are then routed to the different backend server with minimal or no interruption to the client.