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