CVS update: JGroups/doc/design RELAY.txt

"Bela Ban" <[email protected]> Thu, 11 Nov 2010 13:10:39 +0000
Newsgroups gmane.comp.java.javagroups.cvs
Message-ID <[email protected]>
  User: belaban 
  Date: 10/11/11 13:10:39

  Modified:    doc/design RELAY.txt
  Log:
  ns
  
  Revision  Changes    Path
  1.8       +23 -21    JGroups/doc/design/RELAY.txt
  
  Index: RELAY.txt
  ===================================================================
  RCS file: /cvsroot/javagroups/JGroups/doc/design/RELAY.txt,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- RELAY.txt	11 Nov 2010 11:29:28 -0000	1.7
  +++ RELAY.txt	11 Nov 2010 13:10:39 -0000	1.8
  @@ -3,7 +3,7 @@
   ========================================
   
   Author: Bela Ban
  -Version: $Id: RELAY.txt,v 1.7 2010/11/11 11:29:28 belaban Exp $
  +Version: $Id: RELAY.txt,v 1.8 2010/11/11 13:10:39 belaban Exp $
   
   This is an enhanced version of DataCenterReplication.txt with the ability to send unicast messages and to provide views
   to the application, which list members of all local clusters.
  @@ -101,21 +101,28 @@
   
   
   RELAY.up(msg):
  -- If not coord: pass up and break
  -- If RelayHeader present:
  -  - If FORWARD: forward(msg); break
  -  - If DISSEMINATE: pass up and break
  -  - Default: break;
  +- If not coord: pass up and return
  +- If RelayHeader present:  // coord
  +  - If FORWARD: forward(msg.buf); return
  +  - If DISSEMINATE: pass up and return
  +  - If VIEW: todo
  +  - Return
   - Else:
  -  - If multicast message: forward(msg)
  -  - Pass up
  +  - If multicast message:
  +    - Copy msg to M (don't copy headers)
  +    - Remove all headers from M
  +    - Serialize M into a buffer buf
  +    - forward(buf)
  +  - Pass up // unicast or multicast messages
   
   
   RELAY.down(msg):
   - If not coordinator or msg is a multicast or msg.dest is not a ProxyUUID: pass down, break
  -- Create message M from msg (con't copy headers)
  +- Copy msg to M (don't copy headers)
   - Set M.dst=msg.dst.original, M.src=local_addr
  -- Wrap M into a message M2
  +- Remove all headers from M
  +- Serialize M into a buffer buf
  +- Create message M2 (M2.buf=buf)
   - Add RelayHeader.FORWARD to M2
   - Send M2 to the current relay (coordinator)
   - Return // don't pass down !
  @@ -125,20 +132,15 @@
   - Switch RelayHeader:
     - Case FORWARD:
       - If sender = self: discard
  -    - Else: unwrap M into M2 and putOnLocalCluster(M2)
  -  - Case VIEW:
  -    // todo
  +    - Else: deserialize M.buf into message M2 and putOnLocalCluster(M2)
  +  - Case VIEW:  // todo
   
   
  +forward(buf): // buf is the serialized message to be forwarded 
  +- Create a message M with M.buf=buf, M.dst=null
  +- Add RelayHeader.FORWARD to M
  +- Put M onto the TCP channel
   
  -forward(msg):
  -- Copy msg to M
  -- Remove all headers from  M
  -- Wrap M into a new message M2
  -- Add RelayHeader.FORWARD to M2
  -- Put M2 onto the TCP channel
  -
  -// TBD: should we leave headers ? They're going to be overwritten anyway when relaying the message
   
   
   putOnLocalCluster(M):
  
  
  

------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev