Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
96 Cards in this Set
- Front
- Back
What aspect makes distrubuted systems most different from non-distributed systems? |
Harder to handle failures. |
|
What is meant by access transparency? |
Local and remote resources are accessed using the same operations. |
|
What is meant by location transparency? |
Remote resources are accessed using location independent names. |
|
What is meant by concurrency transparency? |
Processes can access resources without interfering with each other. |
|
What is meant by failure transparency? |
Failures are concealed for the users of a resource. |
|
What is meant by replication transparency? |
Users of a resource access it as if it was not replicated. |
|
What is significant for a client-server architecture? |
The client is the active part. |
|
What would we call a system where one node is always reacting on requests and other nodes only communicate with this node? |
Client-server system |
|
What is significant for a peer to peer architecture? |
All nodes are active and can be initiator of operations. |
|
What do we know in a synchronous system? |
That all messages will be delivered. |
|
What do we call a system where the upper bound of the time for operations and message delivery are known? |
A synchronous system |
|
What do we call a system where the maximum times for operations and message delivery are not known? |
An asynchronous system. |
|
Why is it impossible to implement a perfect failure detector in an asynchronous system? |
Maximum delay for a reply is not known. |
|
How can we implement a perfect failure detector in an asynchronous system? |
It is not possible |
|
What is provided by UDP? |
A best effort delivery of messages to a process |
|
What does UDP give us that is not provided by IP? |
Port addressing |
|
What is provided by TCP |
A full-duplex stream between two processes |
|
What is not provided by TCP? |
A guaranteed delivery of messages. |
|
When is the TCP window size a limiting factor for high capacity communication |
Over a long fat communication link. |
|
Which address can be found in the TCP header |
The port number. |
|
What is a good reason for choosing UDP rather than TCP |
You have small messages that should be sent with little delay |
|
What is a good reason for choosing TCP rather than UDP? |
You need to know that a message is handled by the remote application? You have large messages or a sequence of messages? |
|
One can determine how large the receiver window should be, in for example a TCP connection, in order to maximize the capacity of a link. How is this calculated? |
capacity of link times round trip latency of the link |
|
The limiting factor for capacity in a TCP connection, T bps, where the link capacity is C bps, the round trip time R sec and the receiver window W bits is: |
the lesser of C and W/R |
|
When estimating the maximum capacity of a TCP connection you need to know: |
the minimum link capacity and the round trip |
|
What is significant for synchronous communication? |
the send operation blocks and waits for the receive operation |
|
What is significant for asynchronous communication? |
a sender can continue without waiting for the receive operation |
|
What is true for asynchronous communication? |
sender does not block waiting for receiver |
|
Can a synchronous communication interface be used in an asynchronous way? |
yes, by performing the send operation in a separate thread |
|
The Erlang call gen tcp:recv(Socket, 0) will return |
the complete message as sent to the Socket |
|
A server using a stream socket API can communicate with several clients and separate the streams by: |
creating a new stream socket for each connecting client |
|
What is the purpose of the marshaling procedure? |
to encode application layer structures in an external form |
|
What is a gossip protocol? |
A protocol where peers randomly exchange messages to achieve, for example, unreliable multicast. |
|
What is meant by time uncoupling in a communication framework? |
Sender and receiver need not be active at the same time. |
|
What is meant by space uncoupling in a communication framework? |
A sender does not need to know the name or identifier of the receiver. |
|
What is meant by causal ordering in a communication framework? |
If a client is delivered two messages m1 and m2, then m1 could not have been sent by someone after having being delivered m2. |
|
What is meant by an idempotent operation? |
An operation that can be performed several times with the same effect as being performed once. |
|
How are arguments passed in Java RMI? |
remote objects as reference, all other as copies |
|
Which invocation semantic is provided by Java RMI? |
at most once |
|
If a RPC call with at least once semantics fails, we know that: |
the call might have been executed at least once |
|
What is given by at least once RPC semantics? |
if no failure is reported the call has been invoked at least once |
|
How do Erlang processes communicate? |
asynchronous message passing |
|
Does Erlang provide a form of location transparency? |
Yes - a process can use a process identifier without having to know the address of the node where the process lives. |
|
How is the destination defined in an Erlang send operation? |
B as a process identifier or a local or remote registered name |
|
What will prevent an Erlang process from sending a message to a process on another Erlang node? |
A the two nodes do not have the same secret cookie |
|
Message sending in Erlang provides the following semantics: |
best effort FIFO delivery of message |
|
Can we have a circular construction in Erlang? |
yes, processes can refer to each other in a circular way |
|
What happens with Erlang processes that are suspended on a receive statement but no longer referenced by any process? |
they will remain in the system until explicitly killed |
|
Can we implement a RPC system with exactly-once semantics in an asynchronous system with non-failing nodes but unreliable networks? |
yes, if the client keeps re-sending a uniquely tagged request until a reply is received and a server keeps track of all handled request in order not to duplicate a request |
|
What is the difference when an error is reported for an at-least once and at-most-once remote procedure call? |
in the at-least-once case, the remote call will not have been executed at all |
|
What is a soft link in a file system? |
a path that is resolved to another path |
|
What is a hard link in a file system? |
A a mapping of a name to a file identifier |
|
Can two Unix processes simultaneous write to different positions in a single file? |
Yes, the two processes will have their own file table entries |
|
What is the purpose of the Unix lseek operation? |
set the read/write pointer of an opened file |
|
How is a NFS client-side cache entry validated? |
if the validity was checked less than t seconds ago or if the server modification time is equal to the client modification time |
|
How is authentication control handled in Sun NFS? |
authentication is provided by RPC in each operation |
|
How does a NFS server know at what position to read and write to? |
each read and write operation holds the position |
|
How is AFS client side caching implemented? |
the server promise to notify the client if a file is modified by another client |
|
What is the advantage of using AFS over NFS? |
the client need not periodically check validity |
|
How are inconsistencies of the resolver cache handled in the DNS architecture? |
A each entry has a time-to-live |
|
What is the advantage of using recursive navigation for DNS queries? |
server does not need to hold a request state |
|
How are inconsistent cached entries removed from a DNS resolver? |
all entries have an expiration time set when cached |
|
What is the advantage of a flat name space? |
it is a simple solution |
|
How can we make two computer clocks perfectly synchronized? |
we can not |
|
What accuracy can be provided using Christian’s algorithm? |
±(Tround ÷ 2 − minimum latency) |
|
What is the purpose of the Berkeley algorithm? |
to perform internal synchronization |
|
What does the reply from a NTP server contain? |
send and receive time of request and send time of reply |
|
When is it better to use the Berkeley algorithm rather than NTP for clock synchronization? |
when implementing internal synchronization |
|
At time 117 you receive a NTP reply with the following information: request sent at 82, received at 111, reply sent at 120. How should you adjust your time? |
advance 16 steps |
|
What is true if A happened before B? |
A must have occurred in real-time before B |
|
What is true for events A and B? |
if A caused B then A happened before B |
|
What can we know if we use Lamport clocks? |
if L(a) < L(b) then a could have caused b |
|
What can we know if we use Lamport clocks? |
if, and only if, L(a) < L(b) then a happened before b ??? |
|
Which is the most natural representation of a vector clock? |
a record with one element per process |
|
What is the difference between a Lamport clock and a vector clock? |
only the vector clock gives a complete description of the ”happened before order” |
|
When is it problematic to use vectors clocks? |
when we have a dynamic set of processes |
|
An alternative way of implementing a vector clock would be to keep a set of the highest counters seen from each process (including own), send it along with any message, update own counter and merging the own set and received set when a message is received. This would have the following advantage: |
new processes can easily be added |
|
If events in a given set are to be ordered in a total order that respect the happened before order what is the advantage of using vector clocks? |
only vector clocks will give us the happened before order |
|
Is it possible to produce a total order of a set of events stamped with a Lamport time that does not violate any causal relationship? |
no, causal relationships will need real-time clock time stamps |
|
What is the definition of a consistent cut? |
if e is in the cut and f happened-before e then f is in the cut |
|
What is the definition of a stable global state predicate? |
if a system enters a state where the predicate holds true it will remain true in all future states |
|
What is the benefit of a reliable multicast? |
messages are guaranteed to be delivered to all correct processes |
|
Can we implement a reliable multicast using only basic multicast? |
yes, by re-sending each received message to all other nodes |
|
We sometimes want to include the behavior of faulty nodes in our requirements and talk about uniform agreement for multicast. What do we mean by uniform agreement? |
If any node, including faulty, deliver a message then all correct nodes deliver the message. |
|
1p. What is the difference between uniform agreement and nonuniform agreement for multicast? |
Uniform agreement includes the behaviour of non-correct node. |
|
What is the definition of total order multicast? |
messages are delivered in the same sequence |
|
What would you call a multicast service that would never deliver a message m2 before another message m1, if m2 was sent as a response to m1? |
total order |
|
What does Lamport clocks give us when implementing distributed mutual-exclusion? |
request are granted in happened before order |
|
What are the requirements for using the Bully algorithm? |
we must have reliable failure detectors |
|
What is two-phase locking in a transaction? |
not taking any locks once a lock has been released |
|
What does it mean that a transaction meets the isolation property? |
intermediate results must not be visible to other transactions |
|
In a distributed transaction one often use two-phase commit, why is this better than one-phase commit? |
We ensure that if one transaction commits then all transactions will commit. |
|
In a view-synchronous group membership protocol, a process that enters the group, and is included in the delivered view, will be guaranteed to be delivered: |
all messages starting from the view where it is included in the group |
|
What is sent by the primary replica manager to the backup replica manager in a passive replicated system? |
A unique identifier, the state change and the response. |
|
A routing strategy, in a distributed hash table of n nodes, would typically have an asymptotic complexity of: |
O(log(n)) |
|
What is the purpose of hashing in a DHT? |
to generate uniformly distributed keys |