Wolaita Sodo University
School Of Informatics
CS Department
Course Name : Introduction to Distributed System
Assignment-3
Name : Nebiyu Tekle
ID : cs/we/133/12
1. Data Consistency and Data Replication in
Distributed Systems:
· Data consistency in a distributed system refers to
ensuring that all nodes in the system have the most up-
to-date and accurate data. Data replication involves
creating multiple copies of data across different nodes in
the system to improve availability and performance.
· Data Consistency: Ensures all nodes in the system
have the same data at the same time.
· Data Replication: Copying data across multiple
nodes to enhance availability and performance.
2. Reasons for Data and Object Replication:
· Data Replication is done to enhance fault
tolerance, improve performance by reducing latency,
and increase data availability. Object replication is used
to distribute computation and improve system
scalability.
· Data Replication: Enhances fault tolerance,
improves availability, and reduces latency.
· Object Replication: Boosts performance, provides
load balancing, and supports fault tolerance.
3. Data Consistency Models in Distributed
Systems
The data consistency models in Distributed Systems include:
· Strong consistency:
- Ensures immediate synchronization of data, often with
higher latency.
· Eventual consistency:
- Guarantees eventual synchronization of data across nodes.
· Causal consistency
- Maintains causal relationships between data updates.
· Sequential consistency
-Enforces a global order of updates across nodes.
Read-your-writes consistency
4. Fault Tolerance in Distributed Systems:
· Fault tolerance: in a Distributed System is the
ability of the system to continue operating and
providing services even in the presence of faults or
failures. This is achieved through redundancy,
replication, and error detection and recovery
mechanisms.
· Techniques: Redundancy, error detection, and
recovery mechanisms to ensure system resilience.
5. Fault Models in Distributed Systems:
· Fault models in distributed systems include crash
failures, omission failures, timing failures, and
Byzantine failures. Crash failures occur when a node
stops responding, omission failures occur when
messages are lost, timing failures occur when messages
are delayed, and Byzantine failures involve nodes
behaving arbitrarily.
· Crash Faults: Nodes stop without warning.
· Omission Faults: Nodes fail to respond or execute
operations.
· Byzantine Faults: Nodes exhibit arbitrary
behavior, including sending incorrect information.
6. Advantages of Fault Tolerance and
Agreements:
· The advantages of fault tolerance in a distributed
system include improved system reliability, increased
availability of services, and better resilience to failures.
· Agreements in fault tolerance refer to the protocols
and mechanisms used to ensure consistency and
correctness in the presence of faults.
7. Caching and Cache Server in Distributed
Systems:
· Caching in a distributed system involves storing
frequently accessed data in a cache server closer to the
users to reduce latency and improve performance. A
cache server is a dedicated server that stores cached
data and serves it to users quickly, reducing the load on
the main server.
· Cache Server: Dedicated server managing cached
data, improving performance and scalabili.