home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / sys / isis / 387 < prev    next >
Encoding:
Text File  |  1993-01-23  |  4.4 KB  |  88 lines

  1. Newsgroups: comp.sys.isis
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!saimiri.primate.wisc.edu!aplcen.apl.jhu.edu!ddsdx2.jhuapl.edu!jmp
  3. From: jmp@ddsdx2.jhuapl.edu (Jim Pierce)
  4. Subject: RE: Challenges?
  5. Message-ID: <1993Jan22.141440.14520@aplcen.apl.jhu.edu>
  6. Summary: Client groups are a helpful model
  7. Keywords: client groups
  8. Sender: news@aplcen.apl.jhu.edu (USENET News System)
  9. Organization: Johns Hopkins University
  10. Date: Fri, 22 Jan 93 14:14:40 GMT
  11. Lines: 75
  12.  
  13.  
  14. This is posted in response to Ken Birman's request for challenges.
  15.  
  16. Let's start with the Isis client-server model. (If I screw this up, 
  17. Ken will let me know.) The idea is that the server is a collection of 
  18. processes which perform some service and have been replicated for 
  19. fault tolerance and/or load balancing purposes. How many of these 
  20. processes there are is normally of no concern to the client and so it 
  21. should be. A process can become a client of this group and request and 
  22. receive services and never have to be aware of membership changes in 
  23. the server group unless they all fail. If the client fails the server 
  24. members will all cleanup any state they may have been keeping with 
  25. respect to that client. 
  26.  
  27. Now to the problem we have been discussing with Ken.
  28.  
  29. Suppose our server was coordinating the assignment of some resource. 
  30. In one of our servers, the resource is a number (from a limited set of 
  31. numbers) which the server is guaranteeing is system wide unique. The 
  32. client requests a number and returns it when it is finished with the 
  33. number. If the client fails, the server can recover the numbers 
  34. assigned to that client. But wait a minute. Suppose that client is 
  35. itself a replicated application (server) for fault tolerance and load 
  36. leveling purposes. The failure of the client process that requested 
  37. the number from the server does not mean that the number is available 
  38. for reuse. This is because the other members of the client's group 
  39. want to keep on going and are managing the use of the number within 
  40. their aplication. Also, we want to be sure that the surviving members 
  41. of the client's group know about any outstanding requests made by the 
  42. failed member but not yet satisfied by the server.
  43.  
  44. Before going on, I should mention that we have been thinking almost 
  45. entirely in terms of asynchronous xbcasts. This makes the solution 
  46. somewhat simpler conceptually from the client side in that if client 
  47. members are shadowing each other's transactions with the server, the 
  48. communication would be asynchronous for the shadows anyway. 
  49.  
  50. Back to the main thread. Suppose we could tell Isis that all the 
  51. members of the client's group were a single logical client of the 
  52. server. I view this as pg_client with a group address instead of a 
  53. process address. When a member of the client group sends a message to 
  54. the server group we would want it to be atomically sent to the other 
  55. members of the client group as well. Now everybody knows everything. 
  56. The server members would not care which member of the client group 
  57. sent the message. When the server member(s) responsable for responding 
  58. to the client's message send their response, it would go atomically to 
  59. all the members of the client group as well as the server group. All 
  60. members of both groups are always in the same logical state with 
  61. respect to the services provided by the server group. 
  62.  
  63. Suppose a client member fails. A group view change would occur in the 
  64. client group. Survivors would reallocate their work or whatever makes 
  65. sense for their group. They would be assured that they had seen all 
  66. server requests made by the failed member before it failed and that 
  67. any outstanding responses would be forthcoming without the request 
  68. being repeated. Also no responses made by the server would have been 
  69. lost with the failed member so numbers do not get lost. As far as the 
  70. server members, they don't get a group view change if there are 
  71. surviving members of the client group. When the last member of a 
  72. client group fails, then the servers could see a group view change 
  73. showing GV_CLDEPARTED. On this event, all state related to the logical 
  74. client could be cleaned up. In our example, all numbers assigned to 
  75. that logical client could be recovered and reused.
  76.  
  77. We also want it to be fast and cheap.
  78.  
  79.  
  80.  
  81.  
  82. Jim Pierce            phone: (301) 953-6326
  83. The Johns Hopkins University    fax:   (301) 953-6141 (unclass)
  84. Applied Physics Laboratory    email: pierce@capsrv.jhuapl.edu
  85. Johns Hopkins Rd.
  86. Laurel, MD 20723
  87.  
  88.