Tutorial Questions Flashcards
- Why it is sometimes so hard to hide the occurrence and recovery from failures in a distributed system?
Detecting and recovering from failures in a distributed system is hard because it is generally hard to identify the states of remote software/hardware components. For example, it is generally impossible to detect whether a server is actually down, or that it is simply slow in responding
- Why it is not always a good idea to aim at implementing the highest degree of transparency possible?
Considerable loss of performance.
- What is an open distributed system and what benefits does openness provide?
An open distributed system offers services according to clearly defined rules and interfaces. The same system can deliver the service to different type of clients and applications
- Describe precisely what is meant by a scalable system.
Can scale geographically, with size and administration
- Scalability can be achieved applying different techniques. What are these techniques?
Workload and data distribution. This requires distributed/parallel algorithms Using decentralized architecture Data replication, and caching.
- If a client and a server are placed far apart, we may see network latency dominating overall performance. How can we tackle this problem?
Use multithreaded clients and servers. Use a buffer.
- What’s a 3 tiered application?
Highest level is the client. Second level is the application and the lowest level is the data.
- In a structured overlay network, messages are routed according to the topology of the overlay. What is an important disadvantage of this approach?
The shortest path between source and destination may not be the physical shortest path. While the source and receivers may be logically very close to each other, they could be physically at the remotest part of the network.
- How interceptors can be used as an approach to adaptive software in distributed systems?
Interceptors offer a way to intercept the usual flow of the software/system and therefore enhance the existing applications with new functions (like logging). Good for context-awareness.
- Discuss whether it is beneficial to limit the number of threads in a server process.
- Threads require their own private stack. - Independent threads can be chaotic (can get race conditions).
- Assume a client calls an asynchronous RPC to a server, and subsequently waits until the server returns a result using another asynchronous RPC. Is this approach the same as letting the client execute a normal RPC?
No. An asynchronous RPC returns an acknowledgement to the caller, meaning that after the first call by the client, an additional message is sent across the network.
- Explain why transient synchronous communication has inherent scalability problems, and how these could be solved?
- The problem is the limited geographical scalability, which could result in large communication latency. Sysnchronous communication requires blocking until it receives the reply, so it may take a long time if there is distance.
- Give an example showing that multicasting can be useful for discrete data streams.
Passing a large file to many users
- Give an example of where an address of an entity E needs to be further resolved into another address to actually access E.
- IP addresses in the Internet are used to address hosts. However, to access a host, its IP address needs to be further resolved to, for example, an Ethernet address (or a MAC address).
- What’s a true identifier?
- Book IBSM, Mac Address, Student number
- In a hierarchical location service with a depth of k, how many location records need to be updated at most when a mobile entity changes its location?
- 2k + 1
- Explain why transient synchronous communication has inherent scalability problems, and how these could be solved?
- The problem is the limited geographical scalability. Because synchronous communication requires that the caller is blocked until its message is received, it may take a long time before a caller can continue when the receiver is far away
- Give an example showing that multicasting can be useful for discrete data streams.
- Passing a large file to many users as is the case, for example, when updating mirror sites for Web services or software distributions.
- Give an example of where an address of an entity E needs to be further resolved into another address to actually access E.
- IP addresses in the Internet are used to address hosts. However, to access a host, its IP address needs to be further resolved to, for example, an Ethernet address (or a MAC address).