Replication (computing): Difference between revisions

Content deleted Content added
m Remove duplicated `n`
m add WP:TEMPLATECAT to remove from template; genfixes
Line 1:
{{short description|Sharing information to ensure consistency in computing}}
{{More footnotes needed|date=October 2012}}
'''Replication''' in [[computing]] involves sharing information so as to ensure consistency between redundant resources, such as [[software]] or [[computer hardware|hardware]] components, to improve reliability, [[fault-tolerance]], or accessibility.
 
Line 18:
* '''Passive replication''', which involves processing every request on a single replica and transferring the result to the other replicas
 
When one leader replica is designated via [[leader election]] to process all the requests, the system is using a primary-backup or [[Master-slave (computers)| primary-replica]] scheme, which is predominant in [[high-availability cluster]]s. In comparison, if any replica can process a request and distribute a new state, the system is using a multi-primary or [[Multi-master replication|multi-master]] scheme. In the latter case, some form of [[distributed concurrency control]] must be used, such as a [[distributed lock manager]].
 
[[Load balancing (computing)|Load balancing]] differs from task replication, since it distributes a load of different computations across machines, and allows a single computation to be dropped in case of failure. Load balancing, however, sometimes uses data replication (especially [[multi-master replication]]) internally, to distribute its data among machines.
Line 34:
 
== {{Anchor|DATABASE}}Database replication ==
[[Database]] replication can be used on many [[database management system]]s (DBMS), usually with a [[master/slave (technology)| primary/replica]] relationship between the original and the copies. The primary logs the updates, which then ripple through to the replicas. Each replica outputs a message stating that it has received the update successfully, thus allowing the sending of subsequent updates.
 
In [[multi-master replication]], updates can be submitted to any database node, and then ripple through to other servers. This is often desired but introduces substantially increased costs and complexity which may make it impractical in some situations. The most common challenge that exists in multi-master replication is transactional conflict prevention or [[conflict resolution|resolution]]. Most synchronous (or eager) replication solutions perform conflict prevention, while asynchronous (or lazy) solutions have to perform conflict resolution. For instance, if the same record is changed on two nodes simultaneously, an eager replication system would detect the conflict before confirming the commit and abort one of the transactions. A [[lazy replication]] system would allow both [[database transaction|transactions]] to commit and run a conflict resolution during re-synchronization.<ref>{{cite book
Line 64:
When data is replicated between database servers, so that the information remains consistent throughout the database system and users cannot tell or even know which server in the DBMS they are using, the system is said to exhibit replication transparency.
 
However, replication transparency can not always be achieved. When data is replicated in a database, they will be constrained by [[CAP theorem]] or [[PACELC theorem]]. In the NoSQL movement, data consistency is usually sacrificed in exchange for other more desired properties, such as availability (A), partition tolerance (P), etc. Various [[Consistency model|data consistency models]] have also been developed to serve as Service Level Agreement (SLA) between service providers and the users.
 
== Disk storage replication ==
Line 112:
== Replication within file ==
 
In a [[paging]] operating system, pages in a paging file are sometimes replicated within a track to reduce rotational latency.
 
In [[IBM]]'s [[VSAM]], index data are sometimes replicated within a track to reduce rotational latency.
 
== Distributed shared memory replication ==
Line 148:
==References==
{{Reflist|30em}}
 
{{-}}
 
{{Authority control}}