diff Todo @ 358:034acadc0cdc

*** empty log message ***
author kono
date Sun, 19 Oct 2008 16:54:37 +0900
parents a092a8fe9d97
children 65c6d12a5835
line wrap: on
line diff
--- a/Todo	Sat Oct 18 21:28:17 2008 +0900
+++ b/Todo	Sun Oct 19 16:54:37 2008 +0900
@@ -1,3 +1,69 @@
+Sat Oct 18 20:03:10 JST 2008
+
+Note: Routing Table (kono)
+
+Routing Table (Session, Editor)を作るには、上下双方向の通信が必要。
+SessionID を master が作ると、一旦、multi cast した後、もう一度、
+上に上げる必要がある。Select の時には、editor から上に上がるので、
+その時に構築すれば良い。SessionManagerIDと組み合わせれば、eid/sid
+ともに、下から構築出来る。
+
+自分が出したjoin/put/sm_joinに対するackかどうかを見るために、
+SessionManagerID は、どうせ必要。この方法だと、routing table
+もSessionManagerIDに対してだけ構築すれば良い。とは、ならない。
+Session は、複数のSessionManagerにまたがるので。
+
+join_ack が来た時には、そのeditorのrouting tableは完成している、
+あるいは、select が完成させるjoin_ackに追い付くことはない。
+put_ack も同様。
+
+select は、editorへのpathを探しながら、session routing table
+を構築する。もっとも高位のsession managerへのrouting table
+は、これで作成される。ここからjoinしたeditorまでのpathは、
+そのeditor単一のpathだが、routing table に登録される。
+select は、session ringに到達した時点で update を流す。
+update は、木をさかのぼりrouting tableを構築する。
+これで上方向のroutingは確定する。update_ackにより、
+下方向のsesionn routing tableが確定する。
+
+Wed Oct 15 13:33:58 JST 2008
+
+Note: (kono)
+
+Session List を渡すタイミング
+
+    SM_JOIN_ACK (必須...)
+    SM_JOIN では、Session List は0なはず。
+    JOIN,PUT は、multi-cast されるので、その時に登録すれば良い。
+       その時に、Session List を送っても良いが...
+    SELECTは、joinするeditorからしか出ない。Session List は必要ない。
+    SELECT_ACK は、UPDATEが出るので必要ない
+    UPDATE,UPDATE_ACK には、Session List が付く
+    GATHER,GATHER_ACK には、Session List が付く
+
+Session List では、editor,session に対するroutingも作成する、必要
+な情報を含む必要がある。
+    eid, EditorName, FileName, sid, SessionManagerName
+SessionManagerName が入っていれば、editor, session が
+Session Listが来た方向にいるということになる。
+
+SessionManagerName は、network 上でuniqueな必要がある。
+sm_join した時に、そのchannelの名前が大域的に確定する。
+sm_join は複数行なわれないから、名前が変わることはない。
+sm_join された側の名前も、接続されて初めて確定する。
+複数 sm_join されることはあるが、その場合は最初のもの
+を使う。ということは、localにsm_join された後、大域的
+に接続される場合があるってことか。ってことは、やっぱり、
+session manager id を配布するべきだってことね。で、
+SMの名前はあくまでも補助的に使う。
+
+UPDATEの情報によって削除も行なう。delete entry が必要。
+
+Routing Table
+    <eid, channel>
+    <sid, channel>
+null は、local。channel==parent なら、自分の下にはいない。
+
 Tue Oct 14 06:02:37 JST 2008
 
 Todo: (kono)