TU Wien:Verteilte Systeme VO (Dustdar)/Fragen in den Folien 2015W

Aus VoWi
Zur Navigation springen Zur Suche springen

2 :Communication in Distributed Systems – Fundamental Concepts[Bearbeiten | Quelltext bearbeiten]

Q1: Identify some concrete types of communication entities in real-world distributed systems (e.g., in a parallel cluster system)(Folie 9)

Application processes, Middleware and Runtime processes, OS processes like Sockets, Routing, etc. Physical parts like Hosts, Routers, Switches etc


Q2: why is understanding time and space uncoupling important for implementing communication in distributed systems?(Folie 10)

In a distributed system you cannot rely on a same understanding of time and time may differ between long distances. Also, delay and transmission time can be huge around long distances. Two nodes cannot rely on the physical time matching each other.

Q3: Can a service have multiple servers placed in different machines?(Folie 12)

Yes. A DS can be transparent regarding its location of its (sub-) processes and resources. Also, in multi-tier architectures parts like application and database are often split and located on several machines.

Q4: What are the benefits of group communication? Give some concrete examples (e.g., in P2P and social networks).(Folie 15)

With group communication a set of entities (nodes, users, or hosts) can be aggregated as a new entity group and be identified by a name/id/address entity. Every host can now send messages to the whole group instead of having to remember each node's name. Examples: "groups" or "circles" in social network apps like google+ or facebook.

Q5: What are the pros/cons of connection-oriented/connectionless communications? Is it possible to have a connectionless communication between (P1,P2) through some connection-oriented connections? (Folie 19)

Verbindungslose Kommunikation:

Vorteile:kein Verwaltungsaufwand durch Verbindungsaufbau

Nachteile:Adressierung der Daten komplizierter, da Pakete unabhängig voneinanderdurch das Netz befördert werden

Verbindungsorientierte Kommunikation

Vorteile:steht eine Verbindung, ist der Datenaustausch einfach: Empfänger gefunden, Reihenfolge bleibt erhalten, Ressourcen reserviert, etc.

Nachteile:der Aufbau einer Verbindung ist komplex und zeitintensiv, insbesondere wenn viele Stationen miteinander kommunizieren

Q6: Analyze the benefits of non-blocking communication. How does non-blocking receive() work?(Folie 20) kein

Q7: How can we achieve the „persistent communication“? What are possible problems if a server sends an accepted/ACK message before processing the request?


Q8: Give an example of a stateless communication built atop stateless communication. Analyze “web cookie” w.r.t. stateless/stateful support. (Folie 24)


Q9:How can out-of-band data and normal data be handled by using the same transmission channel?(Folie 25)

"Es ist auch möglich, die Out-of-band-Daten über dieselbe Verbindung zu übertragen wie die eigentliche Anforderung. Bei TCP können sie zB. dringende Daten übertragen. Wenn sie am Server ankommen, wird er unterbrochen, so dass er die Daten untersuchen und entsprechend handhaben kann." (Verteilte Systeme, Andrew S. Tanenbaum, dt. S 112)


Q10: How does this model help to improve performance and fault-tolerance? What would be a possible mechanism to reduce costs based on the number of client requests?(Folie 47)


Q11: Compare this architectural model with the super-server model?

3:Communication in Distributed Systems – Programming[Bearbeiten | Quelltext bearbeiten]

Q1: Which types of information are used to describe the identifier of the “end point”?(Folie 8)


Q2: How can a multi-threaded server be implemented?(Folie 10)


Q3: What if connect() happens before listen()/accept()?(Folie11)


Q4: Which types of applications are suitable for RPC?(Folie 25)


Q5: How can asynchronous RPC be implemented (Folie 30)


Q6: List some possible failures in RPC interactions.(Folie 31)


Q7: Give an example of atomic multicast Q1: Give an example(Folie 51)


Q8: How do we know “m is new”?(Folie 51)

4: Naming in Distributed Systems[Bearbeiten | Quelltext bearbeiten]

Q1: Can you list some entities that are relevant to the implementation of communication in distributed systems?(Folie6)

communication endpoint, access points

Q2: For which types of systems flat naming is suitable(Folie 16)

Für kleine Systeme, wo die Auflösung der Namen (Name Resolution) sehr trivial verläuft. (Keine verschiedenen Arten von Name Resolution notwendig)

Q3: Can you explain the data models and the processes for naming in DHT?(Folie 19)


Q4: if you want to manage files in 8 computers, how many bits would you use for the keyspace?(Folie 20)

3 --> Weil 2^3 = 8 (Im Buch/ in den Folien ist das Chord Example mit 2^5 = 32 Computern)

Q5: What are pros and cons of recursive name resolution?(Folie 32)

Nachteil: Hoher Aufwand für einen Nameserver, der einen absoluten Path auflösen muss. Wird im Global Layer gar nicht verwendet. Vorteil: 1) Durch Caching ist es möglich, dass weitere Anfragen gleich an den entsprechenden Server weitergeleitet werden. Zum Beispiel wenn jemand institut.tuwien.at auflösen möchte, dann Schickt der .at Nameserver eine Anfrage auf .tuwien und diese wiederum auf .institut. Wenn ein zweiter Client dann nach test.institut.tuwien.at sucht, weiß der Nameserver, dass er diese Anfrage direkt auf .institut weiterleiten kann. 2) Kommunikationskosten werden reduziert. Angenommen Client ist in den USA. Die Nameserver für test.institut.tuwien.at alle in Österreich. Client schickt eine Anfrage an Nameserver und dieser schickt ihm die komplette Auflösung zurück. Bei der iterativen Resolution müsste der Client mehrmals zwischen USA und den einzelnen Nameservern in Österreich kommunizieren.

Q6: Why can an OpenID identifier be considered unique? (Folie48) Aufgrund dessen, dass eine OpenID eine URL ist, muss diese in einer bestimmten Form eindeutig sein. Namen auf DNS Servern sind zB. eindeutig, deshalb kann, trotz eines dezentralisierten Systems nie ein Identifier zweimal auftreten.

5:Time and Coordination in Distributed Systems[Bearbeiten | Quelltext bearbeiten]

Q1: Drawbacks of this algorithm?(Folie 10) Es handelt sich hierbei um einen zentralisierten Algorithmus und das Problem entsteht dann, wenn der Server zum Beispiel abstürtzt oder nicht erreichbar ist. Methoden um das zu verbessern --> https://web.archive.org/web/*/http://link.springer.com/chapter/10.1007%2F978-3-642-31513-8_43

Q2: RTT is varying, how can the accuracy of this method be improved? Homework: Assume we know the minimum time required for sending a message, Can you estimate the accuracy?(Folie 10)


Q3: Why is it not good to use this algorithm outside a LAN? (Folie 12) Je mehr Slaves (Server, dessen Uhrzeit synchronisiert werden muss) sich in einem verteilten System befinden, desto mehr Verbindungen muss der Master (Server, der die Uhrzeit der Slaves abfragt) aufbauen. Das kann bei einem WAN zu höheren Verlusten führen, als bei einem LAN. Des Weiteren könnte ein Server, der eine hohe Latenz hat, das arithmetische Mittel der Nachstellzeiten deutlich verändern, obwohl die anderen Server vielleicht gar nicht so ungenau sind.

Anm: Sowohl Cristian's und Berkeley sind Algorithmen mit einem zentralen Timeserver. Aus der Sicht der Skalierbarkeit, ist es nicht sehr sinnvoll die Verbindungen von einem einzigen Server aus zu starten.


Q4: What are the main problems with this centralized model? (Folie 31)

Wenn der Koordinator crasht, dann kann im Prinzip niemand mehr auf die Ressource zugreifen. In einem großen System kann ein single-Koordinator auch zum bottleneck werden. (Trotzdem ist es ein besserer Ansatz, als das dezentralisiert Modell) Quelle: Tanenbaum S.253/254 Der Koordinator kann sich zwar schnell wieder neustarten, verliert aber jegliche Information darüber, wer wann auf die Ressource vorhin zugegriffen hat bzw. wer in der Queue wartet, somit kann es dann passieren, dass es zu einem unerlaubten Zugriff kommt, so dass der Koordinator einem anderen Prozess Zugriff gewährt, weil dieser es vorhin vergessen hat.


Q5: How do you support access priority?(Folie 31)

Zum Beispiel könnte es beim Koordinator eine andere Struktur geben, damit Prozesse mit einer höheren Priorität Vorrang haben. Da muss man sich dann überlegen, welche Struktur dann am effizientesten wäre.


Q6: if Pk receives another ELECTION message with a smaller identifier after becoming participant, what should it do?

Pk sollte den Eintrag mit seiner Nummer ersetzen.