Application-Level Replication for Database Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-availability middleware systems face lengthy recovery times due to the need for database-level replication, which prolongs failover processes in case of database failures.
Innovation Solution
Implementing application-level replication, where application servers synchronize data updates across multiple redundant databases, eliminating the need for database-level replication and enabling quick recovery by using message queues and recovery servers to manage transactions and cache synchronization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If database-level replication is used to ensure high availability, then data consistency is maintained, but failover time becomes excessively long (several minutes)
Solution Approach 1:
The patent segments the replication function from the database level to the application level. Instead of relying on database-level replication mechanisms, the application server independently manages replication to multiple databases, allowing failover to proceed without waiting for database-level synchronization processes.
Solution Approach 2:
The patent implements preliminary action by maintaining multiple databases in advance with near-real-time synchronization through message queues. When failover is needed, the standby database is already prepared and synchronized, eliminating the need for lengthy recovery log processing during the failover event itself.
2Reliability
If multiple redundant databases are maintained with database-level replication, then high availability is achieved, but system complexity increases
Solution Approach 1:
The patent introduces message queues as an intermediary layer between the application server and multiple databases. This intermediary simplifies the complexity by providing a standardized mechanism for data synchronization, allowing the application server to manage multiple databases without direct complex interactions with each database's replication mechanisms.
Solution Approach 2:
The application server performs self-service by independently managing the replication and synchronization of data across multiple databases without relying on external database-level replication tools. This consolidates control and reduces the complexity of coordinating multiple database replication systems.
3Loss of time
If application servers synchronize all updates to multiple redundant databases, then failover time is reduced, but network overhead increases
Solution Approach 1:
The patent changes the parameter of data transmission by using message queues to send only essential synchronization information (inserts, updates, deletes) rather than full data sets. This reduces network overhead while maintaining the ability to quickly synchronize multiple databases for rapid failover.
Data Source
AI summary
Application-level replication, the synchronization of data updates within a cluster of application servers, may be provided by having application servers themselves synchronize all updates to multiple redundant databases, precluding the need for database-level replication. This may be accomplished by first sending a set of database modifications requested by the transaction to a first database. Then a message may be placed in one or more message queues, the message indicating the objects inserted, updated, or deleted in the transaction. Then a commit command may be sent to the first database. The set of database modifications and a commit command may then be sent to a second database. This allows for transparent synchronization of the databases and quick recovery from a database failure, while imposing little performance or network overhead.


