
Hello All, I was hoping to provide a quick response to Andrew's comments today, however due to unexpected personal reasons I was unable to. I will not be available until Monday next week, at which time I will provide a brief response to each of the points listed. Best regards, Manuel Pereira =============================== IBM Almaden Research Center 1-408-927-1935 [T/L 457] mpereira@us.ibm.com owner-ogsa-wg@ggf.org wrote on 07/20/2005 11:55:00 AM:
All, Here are some of my comments on the RNS document. I jammed my finger yesterday in basketball, so typing is painful. Therefore, I?m limiting my comments to the most significant. Thank you to the RNS team for all of their work.
Andrew
High level comments:
1) The basic directory function is to provide a mapping handle f(?string?), i.e., to map strings to some form of handle.
Thus, in section 1.1. Why do we need four different types of junctions? Should we not have one type of junction: mainly to an EPR. Thus a directory would map a string to an EPR. EPR f(?string?); Instead there are four ?types? of junctions: EPR?s Virtualized reference ? either contains an EPR or a URL that points to some other service Referrals ? point to another RNS service. Q: could this not be modeled as an EPR? Alias ? points to another ?entry? within the ?same? RNS service. This seems to imply a container like model ? more on this later.
I suggest that we need only ONE type of junction ? an EPR. That will simplify client coding ? and the model significantly.
2) Implied model ? Repositories There is a notion in the spec of ?same service instance? that in conversations has also been called a ?repository?. The basic idea is that an RNS service may ?contain? a set of directories ? and that the service has a root. Thus junction types distinguish, for example, between internal and external things that they point to. Thus an RNS service is a rooted tree ? that may point at the leaves to other rooted trees. So, first of all ? it is implied. If we?re going to have that model it should be right up front and discussed. What is a repository? What are it?s special port types if any, etc. Second, I think that it is not the right way to think about the problem. Directories should be the resources ? not collections of directories. If a particular implementation chooses to multiplex a large number of logically independent directories in a single container ? great ? we will certainly do that too. The issue is what is the model. I feel fairly strongly about this.
Links ?into? other RNS servers:1.1.2.4 ?Alias Junction? is restricted to pointing to entries in the same repository. I think they should be able to point to anything ? including directories in ?other? repositories. It has been claimed that using the EPR of the ?repository? and a path you can get that effect. However, what if the path changes in the other container? My link would break ? even if the directory itself still exists.
3) Full path names In ANY directory system lookup really takes two parameters ? a ?root? at which to start, and a path. Often the ?root? is implied, or is at some well-known location. RNS ? as written, implies that all lookups are based on full paths with an implied, unspecified root. Assuming that full paths are to be used on all lookups, the potential for both hot spots AND single point of failure are clear. In conversation with Manual he mentioned that his clients cache intermediate parts of the tree in the sense that ?/foo/bar/d1? as a prefix leads to a particular RNS service, and then use that info to not always traverse the tree. Besides the obvious implementation challenges of cache consistency when the tree is changing (a problem we certainly had/have in Legion) there is the modeling issue. If we expect clients to do that ? then perhaps the architecture/specification should accommodate that and say that all lookups are relative path lookups with respect to some ?root?. The root could be a true ?root?, or interior node in a tree, which is itself a ?root? of the subtree it defines.
4) Resolve and file system profile. We discussed these on the last ogsa call, my understanding is that they are going out.
5) Iterators. OGSA-Data-WG has discussed iterators in a more general way, e.g., on data base query results etc., I think that whatever is done in RNS should be consistent with whatever is done in OGSA-Data (note ? consistency can happen either way).
Medium level comments:
S 1.1 ?In all cases, junctions are capable of maintaining a list of references (EPRs/URLs) per entry, that is a single junction my render several available EPRs, each of which represent replicas, copies of the same resource, or operationally identical services. ?
Why? Are you saying that replication issues and semantics should be dealt with in the directory structure? Or are you saying that directories are not ?sets? in the sense of only one entry ? but rather ?multi-sets? in the sense that one string can map to multiple things. If the later ? what are the implied semantics. I think it may be safer to keep them as sets.