Replication (computing): Difference between revisions

Content deleted Content added
Some lists numbered.
Tags: Reverted Visual edit
m Reverted 1 edit by 88.240.135.40 (talk) to last revision by Citation bot
Line 5:
== {{Anchor|MASTER-ELECTION}}Terminology ==
Replication in computing can refer to:
#* ''Data replication'', where the same data is stored on multiple [[data storage device|storage device]]s
#* ''Computation replication'', where the same computing task is executed many times. Computational tasks may be:
##** ''Replicated in space'', where tasks are executed on separate devices
##** ''Replicated in time'', where tasks are executed repeatedly on a single device
 
Replication in space or in time is often linked to scheduling algorithms.<ref>Mansouri, Najme, Gholam, Hosein Dastghaibyfard, and Ehsan Mansouri. "Combination of data replication and scheduling algorithm for improving data availability in Data Grids", ''Journal of Network and Computer Applications'' (2013)</ref>
Line 15:
 
Computer scientists further describe replication as being either:
#* '''Active replication''', which is performed by processing the same request at every replica
#* '''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]].
Line 29:
Three widely cited models exist for data replication, each having its own properties and performance:
 
#* '''Transactional replication''': used for replicating [[transactional data]], such as a database. The [[one-copy serializability]] model is employed, which defines valid outcomes of a transaction on replicated data in accordance with the overall [[ACID]] (atomicity, consistency, isolation, durability) properties that transactional systems seek to guarantee.
#* '''[[State machine replication]]''': assumes that the replicated process is a [[deterministic finite automaton]] and that [[atomic broadcast]] of every event is possible. It is based on [[Consensus (computer science)|distributed consensus]] and has a great deal in common with the transactional replication model. This is sometimes mistakenly used as a synonym of active replication. State machine replication is usually implemented by a replicated log consisting of multiple subsequent rounds of the [[Paxos algorithm]]. This was popularized by Google's Chubby system, and is the core behind the open-source [[Keyspace (data store)|Keyspace data store]].<ref name="keyspace">{{cite web | access-date=2010-04-18 | year = 2009 | url=http://scalien.com/whitepapers |title=Keyspace: A Consistently Replicated, Highly-Available Key-Value Store | author=Marton Trencseni, Attila Gazso}}</ref><ref name="chubby">{{cite web | access-date=2010-04-18 | year=2006 | url=http://labs.google.com/papers/chubby.html | title=The Chubby Lock Service for Loosely-Coupled Distributed Systems | author=Mike Burrows | url-status=dead | archive-url=https://web.archive.org/web/20100209225931/http://labs.google.com/papers/chubby.html | archive-date=2010-02-09 }}</ref>
#* '''[[Virtual synchrony]]''': involves a group of processes which cooperate to replicate in-memory data or to coordinate actions. The model defines a distributed entity called a ''process group''. A process can join a group and is provided with a checkpoint containing the current state of the data replicated by group members. Processes can then send [[multicast]]s to the group and will see incoming multicasts in the identical order. Membership changes are handled as a special multicast that delivers a new "membership view" to the processes in the group.<ref>{{Cite book |last1=Birman |first1=K. |last2=Joseph |first2=T. |title=Proceedings of the eleventh ACM Symposium on Operating systems principles - SOSP '87 |chapter=Exploiting virtual synchrony in distributed systems |date=1987-11-01 |chapter-url=https://doi.org/10.1145/41457.37515 |series=SOSP '87 |___location=New York, NY, USA |publisher=Association for Computing Machinery |pages=123–138 |doi=10.1145/41457.37515 |isbn=978-0-89791-242-6|s2cid=7739589 }}</ref>
 
== {{Anchor|DATABASE}}Database replication ==
Line 137:
==See also==
 
#* [[Change data capture]]
#* [[Fault-tolerant computer system]]
#* [[Log shipping]]
#* [[Multi-master replication]]
#* [[Optimistic replication]]
#* [[State machine replication]]
#* [[Virtual synchrony]]
 
==References==