Intermediate Database Management Layer for Seamless Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database management systems face challenges in seamless failover and data consistency when handling database unavailability, leading to potential data loss and inconsistent results due to the need for client-side implementation of failover logic and inconsistent determination of database availability.

Innovation Solution

An intermediate database management layer that transparently routes communications between the application layer and the database layer, using routing rules to determine the appropriate database based on initial communication analysis and availability status, allowing for automated failover and minimizing downtime without modifying application software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If failover logic is implemented at the client end, then database availability is improved, but application software complexity and bug risk increase

Engineering Contradiction:
Improvedatabase availabilityVSAvoidapplication software complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary database management layer that sits between the application layer and database layer. This layer handles failover logic centrally, eliminating the need to embed failover code in application software. The intermediary receives commands from applications, determines database availability, and routes commands to appropriate databases, thus improving reliability without increasing application complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple datacenters with duplicate databases are maintained, then data protection is improved, but seamless transition capability deteriorates

Engineering Contradiction:
Improvedata protectionVSAvoidseamless transition capability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The database management layer acts as a mediator that abstracts the complexity of multiple datacenters from applications. It maintains knowledge of database locations across datacenters and handles the transition logic centrally, enabling seamless failover without requiring application modifications or complex client-side implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by pre-configuring the database management layer with knowledge of alternative database locations and failover policies. When a failure occurs, the pre-established routing rules and availability status information enable immediate automated transition without requiring real-time decision-making or complex client-side logic.

Inventive Principle:
Principle #10Preliminary action

3Speed

If database availability determination is decentralized, then response time is improved, but data consistency deteriorates

Engineering Contradiction:
Improveresponse timeVSAvoiddata consistency
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The database management layer serves as a central intermediary that maintains a unified view of database availability status across all datacenters. It receives and processes availability information centrally, then distributes consistent routing decisions to all applications, ensuring that all clients see the same database state and maintain data consistency while still achieving fast response times through automated routing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9032247B2Intermediate database management layer
Publication Date: 2015.05.12 APPLE INC
  • US9032247B2 patent drawing
  • US9032247B2 patent drawing
  • US9032247B2 patent drawing

AI summary

Disclosed herein are systems, methods, and non-transitory computer-readable storage media for using an intermediate database management layer to manage communications between an application layer and a database layer. The database management layer can receive an initial communication from the application layer and transmit a subsequent communication to a particular database based upon a rule. The rules can specify the particular database based upon the initial communication and an availability status of the database. The rules specify criteria by which the initial communication is identified and logic specifying the particular database to receive the subsequent communication based upon the identification of the initial communication. The rules can specify a plurality of potential particular databases to receive the subsequent communication and an order in which to select one of the databases to receive the subsequent communication based upon the determined availability status of each of the potential particular databases.