how do we keep replicas consistent?
give an example of a Conflicting operations.
Reasons for Replication?
1) Replication for reliability
- possible to continue working after one replica crashes by simply switching to one of the other replicas.
- to provide better protection against corrupted data
2) Replication for performance
- when number of processes need to access data managed by a single server. by replicating the server and subsequently dividing the work.
- by placing a copy of data in the proximity of the process using them, the time to access the data decreases.
Guaranteeing global ordering on conflicting operations may be a costly operation, downgrading scalability. Solution?
weaken consistency requirements so that hopefully global synchronization can be avoided
describe a Data-centric consistency models.
is a contract between a distributed data store [ distributed collection of storages ] and processes in which, the data store will specify the result of a read and write operation during concurrency.
describe a Continuous Consistency.
describe a conit.
specifies the data unit, whose consistency we are measuring
- stack market [ conit = stock value ]
describe weak consistency
Shared data can be counted on to be consistent only after a synchronization is done.
Properties Weak Consistency:
describe Causal consistency
Writes that are potentially causally related must be seen by all processes in the same order. Concurrent writes may be seen in a different order by different processes.
describe Sequential consistency.
The result of any transaction is the same as if all operations contained within the transaction were executed in a sequential order specified by the program.
list types of data centric Consistency models.
what is the goal of a Client-centric consistency models?
Aims to achieve the consistency that the client wants instead of the consistency that the server should maintain.
what are the techniques to find the best place fore replica placement?
what are the types of replicas?
describe Permanent replicas.
describes a process or a machine who always has a replica
describe Server-initiated replicas
To enhance performance, a data store dynamically places a replica in a certain geographical location to meet the unexpected burst of request coming from a server in that location.
describe a Client-initiated replica
A type of replica that is dynamically hosted [ created ] at the request of client
- same machine, LAN, WAN
draw The logical organization of replicas.
inner to outer circle
permanent -> server Initiated -> client initiated -> client
explain how a Server-initiated replicas works
** count access [ requests ] to file F.
- if access count is below the deletion threshold = drop file
- if access count exceeds the replication threshold = replicate file
- if access count is b/n the deletion and replication threshold = migrate file
what are the 3 models of Content distribution?
describe propagate notification of an update model
describe Transfer data from one copy to another model.
describe Propagate the update operation to other copies model.