next up previous
Next: Distribution Up: Reusable Meta-Objects for Distributed Previous: Persistence

Replication

1

Object replication [33] may be used in order to increase availability and fault-tolerance of an object. If one replica fails, others may keep the object running.

There is a very simple way of implementing replication with Guaranį. Every replica executes methods and reads fields without exchanging information with other replicas. Field modifications, however, are broadcast to all replicas in a totally-ordered [8] way, so that all replicas perform field writes in the same sequence. Synchronization operations must be subject to the same total order.

Other replication mechanisms may broadcast method invocations and even field read operations to multiple replicas, then run an election algorithm to select a result. However, this introduces some problems that are hard to solve. For example, when one replicated object interacts with another, the interaction must occur as if the objects were not replicated at all. So, when one replicated object invokes another, all the individual invocations must be identified as replicas of a single invocation, and the operation must be performed only once on each replica of the invoked object.



contact the authors