home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / protocol / nfs / 2329 < prev    next >
Encoding:
Internet Message Format  |  1992-09-14  |  5.4 KB

  1. Path: sparky!uunet!sun-barr!news2me.ebay.sun.com!exodus.Eng.Sun.COM!pepper.Eng.Sun.COM!cmcmanis
  2. From: cmcmanis@pepper.Eng.Sun.COM (Chuck McManis)
  3. Newsgroups: comp.protocols.nfs
  4. Subject: Re: NFS Protocol Specification
  5. Date: 15 Sep 1992 09:14:00 GMT
  6. Organization: Sun Microsystems, Mt. View, Ca.
  7. Lines: 106
  8. Message-ID: <lbbaaoINNej9@exodus.Eng.Sun.COM>
  9. References: <VANDER.92Sep10173409@vancouver.stars.flab.Fujitsu.co.jp> <VANDER.92Sep14191954@vancouver.stars.flab.Fujitsu.co.jp>
  10. NNTP-Posting-Host: pepper
  11.  
  12. (Mike van der Velden) writes:
  13. >... comments, except for two issues on which people are about evenly
  14. >divided: 
  15. >
  16. >a>  Should the server be stateful or stateless?  
  17. >b>  Should the protocol provide a mechanism for locking files (or
  18. >    parts of files)?
  19.  
  20. You may have realized by now that these are the same question.
  21. "Locking" implies state (the locks) so a protocol that has a
  22. notion of locking is stateful with respect to who is accessing
  23. what.
  24.  
  25. If it were simple it wouldn't be fun :-) 
  26.  
  27. You can think of distributed file systems as this multiaxis
  28. design space where moving toward optimum along one axis drags
  29. you away on another. Lets use the "state" axis as an example.
  30. In a "stateless" protocol you get excellent recovery properties,
  31. the server can crash and reboot and with no additional overhead
  32. continue serving clients even in the middle of a read. With a
  33. completely "stateful" protocol when the server crashes is forces
  34. all clients to immediately abort. Stateless protocols have poor
  35. data sharing properties because that implies an arbitrator for
  36. access between two clients that doesn't exist (the server has no
  37. "state" associated with who is accessing what) whereas a stateful
  38. server can enforce exclusive locking and atomic updates.
  39.  
  40. For different situations and designs, sometimes one is better than
  41. the other, sometimes not. Other factors come into play as well such
  42. as how reliable is your network? The machine that is executing the
  43. server code? How much bandwidth do you have to spend on such things
  44. as "update" messages? Whats the latency between a request and a
  45. response ? All need to be considered when designing the protocol.
  46.  
  47. >Here is a brief synopsis on some other points raised:
  48. >   - data size should be > 8K.
  49.  
  50. Stated differently this implies more efficient use of high
  51. bandwidth networks. For a 56K ISDN connection a packet > 8K
  52. causes bursty behaviour as the large packets swamp the communication
  53. channel for relatively large amounts of time.
  54.  
  55. >   - a connection based transport is more desirable than UDP.
  56.  
  57. This is half of the state issue. You see NFS is a protocol layered
  58. upon another protocol (RPC/XDR) which is itself layered upon another
  59. protocol UDP/IP which is layered upon the ethernet (CD/CSMA) protocol.
  60. What TCP (or any other connection based protocol) does for you is
  61. create state (a connection) between you and your server that helps
  62. you do things like recognize right away that a server has gone down.
  63. Other non-connection protocols like VMTP can give you similar benefits
  64. with a somewhat easier recovery mechanism.
  65.  
  66. >   - clients should cache files, or parts of files.
  67.  
  68. Helps you move along the read performance axis, pulls you back from
  69. the "easily write shared" axis. If you cache a file and write on it
  70. after all you need to make sure no one else has (or will) write on
  71. the same place. More protocol, more state, tougher recovery from
  72. errors, and less performance on writes.
  73.  
  74. >   - Unix file view should be extended, perhaps incorporating space
  75. >     for uninterpreted meta-data.
  76.  
  77. Another axis you can choose to go up or down. The more you assume
  78. you are talking to UNIX boxes only, the more assumptions you can
  79. make and simplify the protocol (existence proof == AT&T RFS). Of
  80. course if you want a truely heterogenous protocol that talks to
  81. all systems that have a notion of file storage then you probably
  82. want to design some extensible way of representing arbitrary
  83. attributes associated with a chunk of data that is the "file".
  84.  
  85. >   - security should be improved.
  86.  
  87. This ones got three axises (axii?) Authentication, who do you
  88. give access to and how do you verify they are who they say they
  89. are, authorization which ties into the one above and for UNIX
  90. is pretty straight forward, for VMS it is more tricky, and finally
  91. privacy which would be preventing people from snooping files by
  92. capturing packets. Government types on labels and mandatory access
  93. controls etc. Again you have to find a spot that is comfortable to
  94. you, probably something that is more difficult than breaking root
  95. on a machine but gives finer grained access than Secure NFS does.
  96.  
  97.  
  98. >Again, any other opinions you might have on these or other issues are
  99. >welcome.  Thanks in advance for your time.
  100.  
  101. You're welcome after the fact :-)
  102.  
  103. Getting a single protocol that a wide audience can agree on is a real
  104. challenge, deciding what to optimize for takes clairvoyance. You might
  105. start out by building a distributed file system "toolkit" where you
  106. can bang together arbitrary protocols to test various configurations.
  107.  
  108. The "synthesis" kernel stuff that generated device driver code when
  109. you opened a device looked interesting in this regard. That is being
  110. able to set any of these axis points on a file by file basis might
  111. prove to be a useful protocol.
  112.  
  113. --
  114. --Chuck McManis                            Sun Microsystems
  115. uucp: {anywhere}!sun!cmcmanis   BIX: <none>   Internet: cmcmanis@Eng.Sun.COM
  116. NIS+ Architect
  117. These opinions are my own and no one elses, but you knew that didn't you.
  118.