Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Distributed Systems As DS DS

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

REFT VALLY UNEIVERISTY

JIMMA CAMPUS

DEPARTMENT OF COMPUTER SCIENCE


ASSIGNMENT OF DISTRIBUTED SYSTEM

GROUP NAME ID

ABEL MECHA 003/17

SHALOM DEMISSE 042/17


Give a real world application of distributed system and discuss how

a. Replicas

Improve performance

Replicas allow data to reside close to where it is used

Enhance reliability

Replicas allow remote sites to continue working in the event of local failures. It is also possible
to protect against data corruption.This directly supports the distributed systems goal of enhanced
scalability

If there are many replicas of the same thing, how do we keep all of them up-to-date? How do we
keep the replicas consistent?

It is not easy to keep all those replicas consistent Consistency can be achieved in a number of
ways.

Replication is a widely-used scalability technique

Web clients and web proxies

Replicating the data and moving it closer to where it is needed helps to solve the scalability
problem

A problem remains: How to efficiently synchronize all of the replicas created to solve the
scalability issue?

Dilemma: adding replicas improves scalability, but incurs the overhead of keeping the replicas
up-to-date

As we shall see, the solution often results in a relaxation of any consistency constraints

B. Consistency
 A data-store can be read from or written to by any process in a distributed system.
 A local copy of the data-store (replica) can support “fast reads”
 A write to a local replica needs to be propagated to all remote replicas
 Various consistency models help to understand the various mechanisms used to achieve
and enable this

• A “consistency model” is a Contract between a DS data-store and its processes.


• If the processes agree to the rules, the data-store will perform properly and as advertised.
• Strict Consistency, is defined as:
• Any read on a data item ‘x’ returns a value corresponding to the result of the most
recent write on ‘x’ (regardless of where the write occurred).
• Wi(x)a – a write by process ‘i’ to item ‘x’ with a value of ‘a’. That is, ‘x’ is set to ‘a’
• (Note: The process is often shown as ‘Pi’)
• Ri(x)b – a read by process ‘i’ from item ‘x’ producing the value ‘b’. That is, reading ‘x’
returns ‘b’
• Time moves from left to right in all diagrams

B. Synchronization is handled in that specific distributed environment.

• Synchronization is important if we want to

– control access to a single, shared resource

– agree on the ordering of events

• Synchronization in Distributed Systems is much more difficult than in uniprocessor


systems

1. Synchronization based on “Actual Time”.

2. Synchronization based on “Relative Time”.

3. Synchronization based on Co-ordination (with Election Algorithms).


4. Distributed Mutual Exclusion.

5. Distributed Transactions.

REAL-WORLD DISTRIBUTED COMPUTING An ad hoc collection of compute


resources that communicate with one another via some network connection constitutes a
real-world distributed system applications for such systems is notoriously difficult, as
application programmers must take into account all of the problems described above.
Deploying the applications is equally hard because each site is likely to have its own
middleware and access policies. The uptake of high-performance distributed computing
can be enhanced if these complexities are abstracted away by a single software system
that applies to any real-world distributed system. Conceptually, such a system should
offer two logically independent subsystems: a programming system, offering
functionality traditionally associated with programming languages and communication
libraries; and a deployment system, offering functionality associated with operating
systems. The programming system should allow applications to be not only efficient but
also robust by providing programming models

1. Order the following events based on


a. Lamport’s Algorithm
b. Vector Timestamps
m4

Lamport’s Algorithm 1

A1 H1 B2 C3 E4 D4 G2 F5

Lamport’s Algorithm2

A(2,1) H(1,2) B(2,1) C(3,2) D(4,2) E(4,3) F(5,3) G(2,3)

Vector Timestamps

A[1,1,0] B[2,0,0]C[2,1,0]D[0,2,0]E[0,0,1]F[0,2,3]G[0,0,2]H[0,1,0]

2. Discuss distribution models that should be followed while implementing replicas in


distributed systems

Distributed system is a collection of sites which are connected together via some kind (If
communication network in which every sites has its own database system and users can
access data anywhere in the network from any site, so there is a need to make data available
at every site. Data availability is a significant factor in distributed system and it can be
achieved by replication of data. Replication is a process of keeping copies of data at various
locations for increasing data availability and performance. Once a system is established in
distributed environment it is necessary to update it regularly so that freshness of data can be
achieved The pace at which computer systems change continues to be overwhelming by the
day. Since the inception of modern computers in 1945, until about 1985, computers were
very huge and costly. Additionally, there was no way of connecting them, therefore the
computers operated independently. In the mid-1980s, there was a major advancement in
technology which began to Replication is an aspect of the distributed systems where data is
copied at multiple locations This copying of data ensures that this data is always available;
secondly, it provides fault tolerance. This means that in case one of the machines fails, the
others are still able to operate efficiently. When building a fault-tolerant service with
replicated data all replica process the same request in the same order. Replica is
deterministic; hence they all produce the same results. Finally, all replicas send back their
result to the client, and the client only waits for the first answer ignoring all the others. In
passive replication, only one server exists. This is referred to as the primary This server
processes client requests. After processing a request, it updates the state on the other servers
which act as a backup and sends back the response to the client. In case the primary server
crashes, one of the backup servers automatically replaces it to ensure continuity. This type
of replication can also be used for non‐ deterministic processes.

Transparency Transparency hides the interaction between the client machine and server
machines (6) and also does not provide the user regarding the details of what processing
is being carried out in backend.

Reliability Reliability is availability of data at any time when and where it is required
without any changes to the original data. Distributed file system allows multi-processes
that are preferred by users because this can protect against single processor system
crashes. If in case failure happens, the replicated copies can be used. if we use replicated
copy, the copy present must be consistent with its content. Thus even on a failure, a
backup of contents are available

Flexibility Flexibility can be achieved by using a monolithic kernel or microkernel on


each machine. Kernels are used in order to manage activities like process management,
resource management, memory management.

Scalability Scalability in which resources get added or removed in a network at any time.
More clients are connected with the system day to day. An efficient system is needed in
handling those users or client. There can be many CPU’s get added to the distributed
system. While designing, DFS can be made in two ways: one is centralized and the other
is decentralized architecture. Centralized architecture requires more administration while
scaling up in the distributed file system. Decentralized architecture scaling can be
managed by an administrator

You might also like