Asynchronous Message Queue for Primary Storage Data Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data synchronization methods, such as Oracle Data Guard, suffer from significant time delays between primary and standby storage, making them unsuitable for scenarios requiring real-time performance.
Innovation Solution
A data synchronization method that involves receiving modification data in primary storage, adding it to an asynchronous message queue, and sending it to standby storage via multiple message sending threads, allowing for reduced time delays by decoupling from primary storage resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If synchronous writing of primary storage to backup storage is used, then data consistency is improved, but time delay increases and real-time performance deteriorates
Solution Approach 1:
The patent introduces an asynchronous message queue as an intermediary component between primary storage and backup storage. Modification data is first written to the message queue, then asynchronously transferred to backup storage. This mediator decouples the synchronous dependency, allowing primary storage to commit transactions immediately while backup storage processes data at its own pace, thus reducing time delay while maintaining data consistency through the queue's ordering guarantees.
Solution Approach 2:
The patent segments the data synchronization process into two independent phases: (1) writing modification data to the asynchronous message queue, and (2) asynchronously copying data from the message queue to backup storage. This segmentation allows the primary storage system to complete transactions without waiting for backup completion, while the backup system independently processes data replication, thereby resolving the contradiction between consistency and time delay.
2Loss of time
If asynchronous writing of primary storage to backup storage is used, then time delay is reduced, but data consistency deteriorates
Solution Approach 1:
The asynchronous message queue serves as a mediator that preserves data consistency despite asynchronous operation. The queue maintains the order of modification data and ensures that backup storage receives data in the correct sequence, preventing consistency issues that typically arise from asynchronous writing. Primary storage can proceed immediately after queue insertion, achieving low time delay while the queue's ordering mechanism guarantees data consistency.
Solution Approach 2:
The system implements feedback mechanisms where the message queue tracks the state of data replication and provides status information about synchronization progress. This feedback allows the system to monitor and ensure data consistency is maintained during asynchronous transfer, resolving the contradiction by providing visibility and control over the asynchronous process.
3Reliability
If log synchronization is used in Oracle Data Guard, then data synchronization is achieved, but time delay between primary and standby storage increases
Solution Approach 1:
The patent replaces the traditional log-based synchronization mechanism (mechanical copying of redo logs) with an event-driven architecture using asynchronous message queues. Instead of relying on periodic log shipping and application, the system uses immediate event notification when data changes occur, triggering asynchronous replication through the queue. This substitution eliminates the inherent delays in log-based systems while maintaining synchronization reliability.
Solution Approach 2:
The system performs preliminary action by pre-configuring the asynchronous message queue with subscription information and replication rules before data changes occur. When modification data is generated, the queue is already prepared to immediately process and forward the data to backup storage without the overhead of log parsing and application that characterizes traditional log synchronization, thus reducing time delay while ensuring data synchronization.
4Productivity
If multiple message sending threads are used, then data replication speed is improved, but system complexity increases
Solution Approach 1:
The patent segments the data replication task across multiple independent message sending threads, each capable of processing data independently. This parallelization dramatically increases data replication speed by utilizing multiple CPU cores and network channels simultaneously. The message queue architecture naturally manages thread coordination through its queue structure, where each thread consumes messages independently, thus achieving high productivity without proportionally increasing system complexity.
Solution Approach 2:
The patent merges multiple message sending threads into a unified message queue consumption model. All threads draw from the same queue, ensuring consistent data distribution and coordination without requiring complex inter-thread communication protocols. This merging approach allows parallel processing that boosts replication speed while the shared queue abstraction keeps the system manageable and prevents complexity from scaling linearly with the number of threads.
Data Source
AI summary
Embodiments of the disclosure provide a data synchronization method, apparatus and system. The data synchronization method includes: receiving first modification data in primary storage; adding the first modification data to an asynchronous message queue; and sending the first modification data in the asynchronous message queue to standby storage. Embodiments of the present disclosure add modification data in primary storage to an asynchronous message queue, and send the modification data in the asynchronous message queue to standby storage by enabling one or more message sending threads, so that data synchronization between the primary storage and the standby storage is no longer restricted by the resources of the primary storage. The method reduces the time delay between the primary storage and the standby storage during data synchronization by sending data via multiple threads.


