ITPub博客

首页 > 大数据 > 数据分析 > 《分布式系统原理与范型》习题答案 4.命名

《分布式系统原理与范型》习题答案 4.命名

数据分析 作者:justreadone 时间:2013-10-26 22:04:19 0 删除 编辑
1. Q: Give an example of where an address of an entity E needs to be further resolved into another address to actually access E.
A: IP addresses in the Internet are used to address hosts. However, to access a host, its IP address needs to be resolved to, for example, an Ethernet address.
2. Q: Would you consider a URL such as http://www.acme.org/index.html to be location independent? What about http://www.acme.nl/index.html?
A: Both names can be location independent, although the first one gives fewer hints on the location of the named entity. Location independent means that the name of the entity is independent of its address. By just considering a name, nothing can be said about the address of the associated entity.
3. Q: Give some examples of true identifiers.
A: Examples are ISBN numbers for books, identification numbers for software and hardware products, employee numbers within a single organization, and Ethernet addresses (although some addresses are used to identify a machine instead of just the Ethernet board).
4. Q: How is a mounting point looked up in most UNIX systems?
A: By means of a mount table that contains an entry pointing to the mount point. This means that when a mounting point is to be looked up, we need to go through the mount table to see which entry matches a given mount point.
5. Q: Jade is a distributed file system that uses per-user name spaces (see In other words, each user has his own, private name space. Can names from such name spaces be used to share resources between two different users?
A: Yes, provided names in the per-user name spaces can be resolved to names in a shared, global name space. For example, two identical names in different name spaces are, in principle, completely independent and may refer to different entities. To share entities, it is necessary to refer to them by names from a shared name space. For example, Jade relies on DNS names and IP addresses that can be used to refer to shared entities such as FTP sites. 
6. Q: Consider DNS. To refer to a node N in a subdomain implemented as a different zone than the current domain, a name server for that zone needs to be specified. Is it always necessary to include a resource record for that server’s address, or is it sometimes sufficient to provide only its domain name?
A: When the name server is represented by a node NS in a domain other than the one in which N is contained, it is enough to give only its domain name. In that case, the name can be looked up by a separate DNS query. This is not possible when NS lies in the same subdomain as N, for in that case, you would need to contact the name server to find out its address.
7. Q: Is an identifier allowed to contain information on the entity it refers to?
A: Yes, but that information is not allowed to change, because that would imply changing the identifier. The old identifier should remain valid, so that changing it would imply that an entity has two identifiers, violating the second property of identifiers.
8. Q: Outline an efficient implementation of globally unique identifiers.
A: Such identifiers can be generated locally in the following way. Take the network address of the machine where the identifier is generated, append the local time to that address, along with a generated pseudo-random number.
Although, in theory, it is possible that another machine in the world can generate
the same number, chances that this happens are negligible.
9. Q: Give an example of how the closure mechanism for a URL could work.
A: Assuming a process knows it is dealing with a URL, it first extracts the scheme identifier from the URL, such as the string ftp:. It can subsequently look up this string in a table to find an interface to a local implementation of the FTP protocol. The next part of the closure mechanism consists of extracting the host name from the URL, such as and passing that to
the local DNS name server. Knowing where and how to contact the DNS server is an important part of the closure mechanism. It is often hard-coded into the URL name resolver that the process is executing. Finally, the last part of the URL, which refers to a file that is to be looked up, is passed to the identified host. The latter uses its own local closure mechanism to start the name resolution of the file name.
10. Q: Explain the difference between a hard link and a soft link in UNIX systems.
A: A hard link is a named entry in a directory file pointing to the same file descriptor as another named entry (in possibly a different directory). A symbolic link is a file containing the (character string) name of another file.
11. Q: High-level name servers in DNS, that is, name servers implementing nodes in the DNS name space that are close to the root, generally do not support recursive name resolution. Can we expect much performance improvement if they did?
A: Probably not: because the high-level name servers constitute the global layer of the DNS name space, it can be expected that changes to that part of the name space do not occur often. Consequently, caching will be highly effective, and much long-haul communication will be avoided anyway. Note that recursive name resolution for low-level name servers is important, because in that case, name resolution can be kept local at the lower-level domain in which the resolution is taking place.
12. Q: Explain how DNS can be used to implement a home-based approach to locating mobile hosts.
A: The DNS name of a mobile host would be used as (rather poor) identifier for that host. Each time the name is resolved, it should return the current IP address of the host. This implies that the DNS server responsible for providing that IP address will act as the host’s name server. Each time the host moves, it contacts this home server and provides it with its current address.
Note that a mechanism should be available to avoid caching of the address. In other words, other name servers should be told not to cache the address found.
13. Q: A special form of locating an entity is called anycasting, by which a service is identified by means of an IP address (see, for example, Sending a request to an anycast address, returns a response from a server implementing the service identified by that anycast address. Outline the implementation of an anycast service based on the hierarchical location service described in Sec. 4.2.4.
A: Each service has a unique identifier associated with it. Any server implementing that service, inserts its network-level address into the location service at the directory node of the leaf domain in which the server resides. Lookup requests use the identifier of the service, and will automatically return the nearest server implementing that service.
14. Q: Considering that a two-tiered home-based approach is a specialization of a hierarchical location service, where is the root?
A: The root is formed jointly by all home locations, but is partitioned in such a way that each mobile entity has its own root server.
15. Q: Suppose it is known that a specific mobile entity will almost never move outside domain D, and if it does, it can be expected to return soon. How can this information be used to speed up the lookup operation in a hierarchical location service?
A: Simply encode the domain D in the identifier for the entity that is used for the lookup operation. The operation can then be immediately forwarded to the directory node dir(D), from where the search continues.
16. Q: 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?
A: Changing location can be described as the combination of an insert and a delete operation. An insert operation requires that at worst k +1 location records are to be changed. Likewise, a delete operation also requires changing k +1 records, where the record in the root is shared between the two operations.
This leads to a total of 2k +1 records.
17. Q: Consider an entity moving from location A to B, while passing several intermediate locations where it will reside for only a relatively short time. When arriving at B, it settles down for a while. Changing an address in a hierarchical location service may still take a relatively long time to complete, and should therefore be avoided when visiting an intermediate location. How can the entity be located at an intermediate location?
A: Combine the hierarchical location service with forwarding pointers. When the entity starts to move, it leaves behind a forwarding pointer at A to its next (intermediate) location. Each time it moves again, a forwarding pointer is left behind. Upon arrival in B, the entity inserts its new address into the hierarchical location service. The chain of pointers is subsequently cleaned up, and the address in A is deleted.
18. Q: When passing a remote reference from process P1 to P2 in distributed reference counting, would it help to let P1 increment the counter, instead of P2 ?
A: No, because in that case, process P2 may decide to immediately remove its reference before P1 has a chance to increment the counter at the object. Consequently, when P2 sends its decrement message, the counter may drop to zero and the object may be incorrectly removed.
19. Q: Make clear that weighted reference counting is more efficient than simple reference counting. Assume communication is reliable.
A: Creation or removal of reference can be done with only a single message, as is also the case with simple reference counting. Passing a reference is much cheaper, as it can be done with only one message containing the copied reference with its partial weight set to half of the weight of the original reference. There is thus no need to contact the object, in contrast to simple reference
counting.
20. Q: Is it possible in generation reference counting, that an object is collected as garbage while there are still references, but which belong to a generation the object does not know of?
A: No. Whenever a reference of generation k is removed (so that possibly the associated entry in G[k ] becomes zero), the object is always informed about any outstanding references of generation k +1. If that generation was not yet known to the object, it will be at the time a reference of generation k is removed.
21. Q: Is it possible in generation reference counting, that an entry G[i ] becomes smaller than zero?
A: Yes. Suppose a reference of generation k is copied, leading to a reference of generation k +1. If the latter is removed before the reference from which it was copied, G[k +1] will be decremented by one. If no reference of generation k had yet been removed, G[k +1] will then drop below zero.
22. Q: In reference listing, if no response is received after sending a ping message to process P, the process is removed from the object’s reference list. Is it always correct to remove the process?
A: No. It may be possible that the process is temporarily unreachable due to a network partition, for example, caused by a failing router or gateway. In that case, the reference is lost and the skeleton may falsely decide that the object can be removed if the list becomes empty.
23. Q: Describe a very simple way to decide that the stabilization step in the tracing-based garbage collector of Lang et al. has been reached.
A: Assume that each process can decide whether its local garbage collector has changed any of the markings on proxies or skeletons during the local propagation step. A very simple, nonscalable solution, is to report whether or not any changes have been made to a central coordinator. As soon as that coordinator has recorded that no more changes have occurred, it tells each process
to start reclaiming garbage.
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23097350/viewspace-1121290/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-12-29