0% found this document useful (0 votes)
16 views3 pages

Design and Issues and DC

The document discusses several key challenges in designing distributed systems from an algorithmic perspective, including synchronization mechanisms, group communication, monitoring distributed events, distributed program design and verification, and debugging distributed programs. Some examples of synchronization challenges mentioned are leader election, mutual exclusion, deadlock detection and resolution, termination detection, and clock synchronization. Group communication challenges include efficient group management as members join and leave, as well as ensuring ordered message delivery.

Uploaded by

vinikshashree
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views3 pages

Design and Issues and DC

The document discusses several key challenges in designing distributed systems from an algorithmic perspective, including synchronization mechanisms, group communication, monitoring distributed events, distributed program design and verification, and debugging distributed programs. Some examples of synchronization challenges mentioned are leader election, mutual exclusion, deadlock detection and resolution, termination detection, and clock synchronization. Group communication challenges include efficient group management as members join and leave, as well as ensuring ordered message delivery.

Uploaded by

vinikshashree
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

1.8.

1 Distributed systems challenges from a system perspective


The following functions must be addressed when designing and building a distributed

system:

 Communication This task involves designing appropriate mechanisms for

communication among the processes in the network. Example: remote procedure call

(RPC), remote object invocation (ROI), etc.

 Processes Some of the issues involved are: management of processes and threads at

clients/servers; code migration; and the design of software and mobile agents.

 Naming Devising easy to use and robust schemes for names, identifiers, and

addresses is essential for locating resources and processes in a transparent and

scalable manner. Naming in mobile systems provides additional challenges.

 Synchronization Mutual exclusion is an example of synchronization, other forms of

synchronization are leader election and synchronizing physical clocks.

 Data storage and access Schemes for data storage, and implicitly for accessing the

data in a fast and scalable manner across the network are important for efficiency.

 Consistency and replication To avoid bottlenecks, to provide fast access to data, and

to provide scalability, replication of data objects is highly desirable. This leads to

issues of managing the replicas, and dealing with consistency among the

replicas/caches in a distributed setting.

 Fault tolerance to maintaining correct and efficient operation in spite of any failures

of links, nodes, and processes. Process resilience, reliable communication, distributed

commit, and check pointing and recovery are some of the fault-tolerance mechanisms.

 Security Distributed systems security involves various aspects of cryptography,

secure channels, access control, authorization, and secure group management.

 Applications Programming Interface (API) and transparency The API for

communication and other services for the ease of use and wider adoption of

distributed systems services by non-technical users.

 Scalability and modularity The algorithms, data (objects), and services must be as

distributed as possible. Various techniques such as replication, caching and cache

management, and asynchronous processing help to achieve scalability.


Algorithmic challenges:
Synchronization/coordination mechanisms

 The processes must be allowed to execute concurrently, except when they need to

synchronize to exchange information, i.e., communicate about shared data.

 Synchronization is essential for the distributed processes to overcome the limited

observation of the system state from the viewpoint of any one process.

 The synchronization mechanisms is viewed as resource and concurrency management

mechanisms to control the behavior of the processes.

 some examples of problems requiring synchronization:

 Physical clock synchronization Physical clocks ususally diverge in their values

due to hardware limitations. Keeping them synchronized is a fundamental

challenge to maintain common time.

 Leader election All the processes need to agree on which process will play the

role of a distinguished process – called a leader process which is necessary for

many distributed algorithms to initiate some action like a broadcast or collecting

the state of the system.

 Mutual exclusion This is clearly a synchronization problem because access to the

critical resource(s) has to be coordinated.

 Deadlock detection and resolution

o Deadlock detection needs coordination to avoid duplicate work, and

o deadlock resolution needs coordination to avoid unnecessary aborts of

processes.

 Termination detection This requires cooperation among the processes to detect

the specific global state of quiescence.

 Garbage collection Garbage refers to objects that are no longer in use and that are

not pointed to by any other process. Detecting garbage requires coordination

among the processes.

Group communication, multicast, and ordered message delivery


 A group is a collection of processes on an application domain.

 Specific algorithms need to be designed to enable efficient group communication and

group management wherein processes can join and leave groups dynamically, or even

fail.

 When multiple processes send messages concurrently, different recipients may

receive the messages in different orders that violates the semantics of distributed

program. Hence, formal specifications for ordered delivery need to be formulated.

Monitoring distributed events and predicates

 Predicates defined on program variables that are local to different processes are used

for specifying conditions on the global system state, and are useful for applications

like debugging, sensing the environment, and in industrial process control hence for

monitoring such predicates are important.

 An important paradigm for monitoring distributed events is that of event streaming.

Distributed program design and verification tools

 Methodically designed and verifiably correct programs can greatly reduce the

overhead of software design, debugging, and engineering.

 Designing mechanisms to achieve these design and verification goals is a challenge.

Debugging distributed programs

 debugging distributed programs is much harder because of the concurrency in actions

and uncertainty due to the large number of possible executions defined by the

interleaved concurrent actions.

 Adequate debugging mechanisms and tools need to be designed to meet this

challenge.

dd

You might also like