What is a distributed system

 

What is middleware

 

Transparency

Access, location, migration( source has been relocated, but it is not visible for  you, you act as normal), relocation (copy of the same resource several times, same name for all the copies), concurrency (another user is accessing the resource at the same time), failure (you don’t see that the system has a failure, the system is still working and recovering from this failure), persistence (memory and disk, this set-up is hidden, the object is put into memory and then put back to disk)

 

What is an open distributed system and what benefits does openness provide?

 

Scalable system

Either its number of components, geographical size or number and size of administrative domains, if it can grow in one or more of these dimensions without an unacceptable loss of performance.

Add more components and the system goes slower, then the system is not scalable.

Switch bar network or Omega network.

The difference between a multiprocessor and a multicomputer (what are the problem with these?).

Multiprocessor:  CPUs have access to a shared main memory (the bus is a problem, problem is scalability.  If you add more, the performance go down.  Cash problem.  Solution:  Bus and switch).

Multicomputer:  CPUs can communicate only through message passing.

CHECK THE DRAWING IN THE BOOK page 16.

 

Difference between distributed OS and network OS.

Handles multiprocessors and Homogeneous (have the same speed) multicomputers.

Different independent computers (not the same, not homogeneous). 

Second difference:  Each have their own OS sytem (unix, Microsoft, Linux).  Using middleware.

 

Scalability can be achieved by applying different techniques.  What are these?

Distribution (how it should be done is not easy), replication (consistency problem) and chaching (when and how often should I update, tool to reduce communication which will reduce performance)

 

The difference between buffers and cache

Buffers are allocated by various processes to use as input queues, etc. Most time, buffers are some processes' output, and they are file buffers. A simplistic explanation of buffers is that they allow processes to temporarily store input in memory until the process can deal with it.

Cache is typically frequently requested disk I/O. If multiple processes are accessing the same files, much of those files will be cached to improve performance (RAM being so much faster than hard drives), it's disk cache.

Chapter 4 Naming

Used to:

Share resources, uniquely identify entities, refer to locations

Name resolution: allows a process to access the named entity

 

In distributed systems, the naming is also distributed.

Key role in scalability, naming has to be done efficiently.

Multiple name servers, all is distributed.

 

Global level:  Jointly managed by different administrators.  Like the unix system you can not change the VAR or system directories.

Admin level:

Managerial level:

 

Image page 196.

Makes your search easier, scalable.

Image page 198  Interative Name Resolution.

Image page 199 Recursive Name Resolution (info sent to the next server.  Only one communication line between the client and the server, here you can also use cashing.

 

Chapter 6:

All about replication and the problems involved.

Scalability (performance)  VERSUS consistency

Alfa times consistency plus beta performance (different weight in you system, it depends on what you think is important).

Communication is costly.

 

Replication gives me the possibility to continue working if the other copy goes down.

Multiple copies may lead to consistency problems.

Consistency = equal

 

Strict Consistency (page 298):

It does not make sense to talk about the most recent in a distributed system.

See image page 300.

Sequence Consistency

Respect of the sequential order.

See image page 301

Causal Consistency

Have to be seen by all processes in the same order.

Image page 306

FIFO

Update by a single process.  Received in the order they were issued.

See image 6-11 page 307

Weak, release, entry

 

Monotonic Reads:

Two local copies, one process.

Monotonic Writes:

Take with you all the updates.

A write operation must finish before the next write operation from one process on the same data.

 

 

Chapter 7

The difference in distributed systems and single systems and the faults you can see.

Dependability (slide nr 7)

How can my system tolerant faults.  Can tolerate some faults before it brakes down.

Slides 7-10.

Fault forecasting:  How can I compute in the future, how one failure can have impact on others parts and how low can the distributed system run until it brakes down.

This is based on statistics for the whole system.

 

Failure masking:

Slide 15

 

Flat groups versus Hierarchical groups:

Slide 17

If the coordinator fails in the Hierarchical groups, everything stops.  With a flat group, this does not happen.  Flat group needs to vote for a decision. 

 

Reliable RPC

Image page 377

Slide 30

Page 379

Byzantine:  recursive agreement.   VECTOR

Image page 373

Slide 24.  RELIABLE COMMUNICATION (Byzantine generals)

If you have not a reliable communication, you can never get an agreement.

 

Distributed Commit

Slide 45

Image page 394  Figure 7-17

2 phase COMMIT is enough, do not read 3 phase.