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)
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.