Distributed Systems

Distributed system (definition):

  • Consists of multiple independent nodes (with seperate CPU and memory)
  • The nodes have no common shared memory
  • There exists an interconnection network
  • Distribution transparency is provided
  • There is no Single Point of Failure

Types of Transparency #

  1. Access transparency: Local and remote resources are accessed in the same way.

  2. Location transparency: The location of objects is not known to the users. (names instead of physical locations)

  3. Replication transparency: The number of copies that exist of an object is not known to the users.

  4. Fragmentation transparency: Objects are accessed without knowledge about any possible fragmentation.

  5. Concurrency transparency: Objects are accessed in the same way as in a single-user system.

  6. Error transparency: Applications terminate in a defined way even in the event of hardware or software failures.

  7. Migration transparency: Objects can migrate without affecting applications.

  8. Performance transparency: The system automatically reconfigures to improve performance.

  9. Scaling transparency: The system can be extended in size without changes to its structure or the applications.

The first four are distribution transparency (ALRF).

Some terminology #

Reliability: Probability that an item provides a required service under given conditions for a given time interval.

  • MeanTimeToFailure (MTTF)

Availability: Probability that an item provides a required service under given conditions at any instance of time in a given interval, or at a certain time instance.

  • MeanTimeToRecover (MTTR)
  1. System models
  2. Inter Process Communication (IPC)
  3. Naming
  4. Time
  5. Failure detection
  6. Global state
  7. Transaction processing
  8. Data replication
  9. Broadcast
  10. Consensus