Design issues v2 hod notes


Distributed Systems Challenges(cool people never sleep, Dogs Chase Fast, Students Always Study.)



Distributed Systems Challenges

1. Challenges from System Perspective

  • a. Communication
  • b. Processes
  • c. Naming
  • d. Synchronization
  • e. Data Storage and Access
  • f. Consistency and Replication
  • g. Fault Tolerance
  • h. Security
  • i. Applications Programming Interface (API) and Transparency
    • Access Transparency
    • Location Transparency
    • Migration Transparency
    • Relocation Transparency
    • Replication Transparency
    • Concurrency Transparency
    • Failure Transparency
  • j. Scalability and Modularity



Algorithmic Challenges in Distributed Computing(Every Day Teachers Show Good Manners, Doing Daily Duties With Discipline, Respect, Love, Right Path.)

  • a. Execution Models and Frameworks
  • b. Distributed Graph and Routing Algorithms
  • c. Time and Global State
  • d. Synchronization / Coordination Mechanisms
  • e. Group Communication and Ordered Delivery
  • f. Monitoring Distributed Events and Predicates
  • g. Distributed Program Design and Verification Tools
  • h. Debugging Distributed Programs
  • i. Data Replication, Consistency Models, and Caching
  • j. World Wide Web: Caching, Searching, Scheduling
  • k. Distributed Shared Memory Abstraction
  • l. Reliable and Fault-Tolerant Distributed Systems
  • m. Load Balancing
  • n. Real-Time Scheduling
  • o. Performance



Applications and Newer Challenges(Monkey Sees Umbrella, Picks Pen, Draws Dog, Gives Smile. )

  • a. Mobile Systems
  • b. Sensor Networks
  • c. Ubiquitous Computing
  • d. Peer-to-Peer (P2P) Computing
  • e. Publish-Subscribe and Content Distribution
  • f. Distributed Agents
  • g. Distributed Data Mining
  • h. Grid Computing
  • i. Security in Distributed Systems


1. Challenges from System Perspective

a. Communication

Communication requires appropriate mechanisms for interaction among processes in the network. Examples are Remote Procedure Call (RPC), Remote Object Invocation (ROI), message-oriented communication, and stream-oriented communication.

b. Processes

Challenges include management of processes and threads at clients and servers, code migration, and the design of software and mobile agents.

c. Naming

Naming requires robust schemes for names, identifiers, and addresses to locate resources and processes in a scalable and transparent way. In mobile systems, naming is difficult because it cannot be tied to fixed geographical topology.

d. Synchronization

Synchronization or coordination among processes is important. Mutual exclusion is a classical example. Other synchronization tasks include leader election and coordination protocols.

e. Data Storage and Access

Efficient schemes for data storage and access are needed for fast and scalable performance across the network.

f. Consistency and Replication

Replication of data objects is needed to avoid bottlenecks, provide fast access, and ensure scalability. Consistency models are required to manage replicated data correctly.

g. Fault Tolerance

Fault tolerance ensures correct system operation even if links, nodes, or processes fail.

h. Security

Distributed system security includes cryptography, secure channels, access control, key management (generation and distribution), authorization, and secure group management.

i. Applications Programming Interface (API) and Transparency

The API for communication and services improves ease of use and adoption. Transparency hides implementation policies from users.

  • Access Transparency: hides data representation differences and gives uniform operations.
  • Location Transparency: hides resource locations from users.
  • Migration Transparency: allows resources to move without changing names.
  • Relocation Transparency: supports relocation of resources during access.
  • Replication Transparency: hides replication from the user.
  • Concurrency Transparency: hides concurrent access of shared resources.
  • Failure Transparency: makes the system reliable and fault-tolerant.

j. Scalability and Modularity

Distributed algorithms, objects, and services must be scalable. Techniques like replication, caching, cache management, and asynchronous processing help scalability.


2. Algorithmic Challenges in Distributed Computing

a. Execution Models and Frameworks

Interleaving model and partial order model are widely used for distributed executions. They support reasoning and design of distributed algorithms.

b. Distributed Graph and Routing Algorithms

Distributed systems are modeled as graphs. Graph algorithms form the base for communication, data dissemination, object location, and object search.

c. Time and Global State

Processes are spread across space and need a uniform notion of time. Challenges include accurate physical time and logical time.

d. Synchronization/Coordination Mechanisms

Processes execute concurrently but need synchronization for shared data. Challenges include physical clock synchronization, leader election, mutual exclusion, deadlock detection, termination detection, and garbage collection.

e. Group Communication and Ordered Delivery

Groups of processes need efficient communication, dynamic membership management, and ordered message delivery.

f. Monitoring Distributed Events and Predicates

Predicates on program variables across processes help in debugging, environment sensing, and industrial process control.

g. Distributed Program Design and Verification Tools

Correctly designed and verifiable programs reduce debugging and design overhead.

h. Debugging Distributed Programs

Debugging is harder due to concurrency and multiple possible execution paths.

i. Data Replication, Consistency Models, and Caching

Replicating data improves speed, but consistency among replicas and caches must be ensured.

j. World Wide Web: Caching, Searching, Scheduling

The Web is a large distributed system, mainly read-intensive, requiring efficient caching, searching, and scheduling.

k. Distributed Shared Memory Abstraction

Shared memory abstraction simplifies programming by using read/write operations instead of message passing. Middleware handles the message-passing but adds overhead.

l. Reliable and Fault-Tolerant Distributed Systems

Reliability is achieved using consensus algorithms, replication, quorum systems, distributed commit, checkpointing, recovery algorithms, and failure detectors.

m. Load Balancing

Load balancing improves throughput and reduces latency. Techniques include data migration, computation migration, and distributed scheduling.

n. Real-Time Scheduling

Real-time scheduling ensures tasks finish on time in mission-critical systems. It is difficult without a global view of the system state and requires online adjustments.

o. Performance

Performance is important to maintain good throughput. Metrics, measurement methods, and tools are required for evaluation.


3. Applications and Newer Challenges

a. Mobile Systems

Mobile systems use wireless communication, which involves range, power control, battery conservation, interference, and Internet connectivity issues.

b. Sensor Networks

Sensors sense physical parameters like temperature, pressure, and humidity. Large numbers of low-cost sensors bring scalability and management challenges.

c. Ubiquitous Computing

Ubiquitous systems embed processors in the environment to perform background application functions, e.g., smart homes and workplaces.

d. Peer-to-Peer (P2P) Computing

P2P computing is symmetric; all processors are equal without hierarchy.

e. Publish-Subscribe and Content Distribution

Dynamic information distribution requires mechanisms for publishing, subscribing, and filtering based on user interest.

f. Distributed Agents

Agents are software processes that move around the system to perform specific tasks on behalf of a larger objective.

g. Distributed Data Mining

Data mining algorithms analyze large datasets to detect patterns and trends for applications like customer profiling.

h. Grid Computing

Grid computing challenges include job scheduling, quality of service, real-time guarantees, and security of machines and jobs.

i. Security in Distributed Systems

Security requires confidentiality (restricted access), authentication (verify source and identity), and availability (resistance against attacks).