Oracle7 Server Distributed Systems Volume II: Replicated Data
Store-and-Forward vs. Real-Time Data Propagation
When choosing between store-and-forward (asynchronous) and real-time (synchronous) data propagation, you are primarily making a choice between availability and complexity.
Both synchronous and asynchronous replication have the advantage of allowing you to query and update local copies of the data, thus improving response time.
With a completely synchronous environment, you have the advantage of always having the most up-to-date information at all sites. You always make decisions based on the most current information, and conflicting updates never occur.
With a completely asynchronous environment, you have the advantage of continuous availability. No site is dependent upon another to allow an update to be made. If one site goes down, you can switch to another and continue working. Your business needs will determine which propagation method is most appropriate for you.
Synchronous
You can use synchronous data propagation in either a distributed or replicated environment. When determining whether to use synchronous data propagation, you need to consider the following issues:
- Changes at other sites are immediately reflected at your local site.
- Although in a replicated environment, the same data can be updated at multiple sites, you do not have to worry about conflicting updates occurring.
- If you experience network failure with any replicated site to which you are synchronously propagating changes, you will not be able to perform local updates until either the network failure is resolved or you drop the unavailable site from your replicated environment.
- Your updates may have a slower response time, because you must wait for a response from all sites before committing or rolling back a transaction.
- Synchronous procedural data propagation is an option for environments with read-often/write-occasionally data (for example, the price list for certain businesses).
Synchronous replication is appropriate in situations where absolute consistency between replicated data is a requirement.
To make synchronous replication practical, you need to take steps to ensure stable networks and systems, or have flexibility in scheduling updates to allow for delays due to network and system outages.
Asynchronous
You can use asynchronous data propagation in replicated environments only. When determining whether to use asynchronous data propagation, you need to consider the following issues:
- Failures of remote sites or networks do not block other sites from querying and/or updating replicated data locally.
- For maximum fault tolerance, a dedicated failover site can support mission critical operations.
- Your response times for updates is improved over using synchronous propagation, because you do not have to wait for a response from a remote site.
- Deferred transactions are propagated at whatever interval is most convenient for you. You can enforce "near real-time" replication by using an interval of a few seconds; you can replicate your changes at a fixed time or interval; or you can replicate your changes on demand.
- Changes at other sites are not immediately reflected at your local site, resulting in temporary inconsistencies between replicas.
- Conflicting changes can be made at multiple sites. These conflicts will not be detected until the changes are propagated. Oracle provides built-in mechanisms for detecting and resolving these conflicts.