comparison Todo @ 358:034acadc0cdc

*** empty log message ***
author kono
date Sun, 19 Oct 2008 16:54:37 +0900
parents a092a8fe9d97
children 65c6d12a5835
comparison
equal deleted inserted replaced
357:6ae9dcb30a12 358:034acadc0cdc
1 Sat Oct 18 20:03:10 JST 2008
2
3 Note: Routing Table (kono)
4
5 Routing Table (Session, Editor)を作るには、上下双方向の通信が必要。
6 SessionID を master が作ると、一旦、multi cast した後、もう一度、
7 上に上げる必要がある。Select の時には、editor から上に上がるので、
8 その時に構築すれば良い。SessionManagerIDと組み合わせれば、eid/sid
9 ともに、下から構築出来る。
10
11 自分が出したjoin/put/sm_joinに対するackかどうかを見るために、
12 SessionManagerID は、どうせ必要。この方法だと、routing table
13 もSessionManagerIDに対してだけ構築すれば良い。とは、ならない。
14 Session は、複数のSessionManagerにまたがるので。
15
16 join_ack が来た時には、そのeditorのrouting tableは完成している、
17 あるいは、select が完成させるjoin_ackに追い付くことはない。
18 put_ack も同様。
19
20 select は、editorへのpathを探しながら、session routing table
21 を構築する。もっとも高位のsession managerへのrouting table
22 は、これで作成される。ここからjoinしたeditorまでのpathは、
23 そのeditor単一のpathだが、routing table に登録される。
24 select は、session ringに到達した時点で update を流す。
25 update は、木をさかのぼりrouting tableを構築する。
26 これで上方向のroutingは確定する。update_ackにより、
27 下方向のsesionn routing tableが確定する。
28
29 Wed Oct 15 13:33:58 JST 2008
30
31 Note: (kono)
32
33 Session List を渡すタイミング
34
35 SM_JOIN_ACK (必須...)
36 SM_JOIN では、Session List は0なはず。
37 JOIN,PUT は、multi-cast されるので、その時に登録すれば良い。
38 その時に、Session List を送っても良いが...
39 SELECTは、joinするeditorからしか出ない。Session List は必要ない。
40 SELECT_ACK は、UPDATEが出るので必要ない
41 UPDATE,UPDATE_ACK には、Session List が付く
42 GATHER,GATHER_ACK には、Session List が付く
43
44 Session List では、editor,session に対するroutingも作成する、必要
45 な情報を含む必要がある。
46 eid, EditorName, FileName, sid, SessionManagerName
47 SessionManagerName が入っていれば、editor, session が
48 Session Listが来た方向にいるということになる。
49
50 SessionManagerName は、network 上でuniqueな必要がある。
51 sm_join した時に、そのchannelの名前が大域的に確定する。
52 sm_join は複数行なわれないから、名前が変わることはない。
53 sm_join された側の名前も、接続されて初めて確定する。
54 複数 sm_join されることはあるが、その場合は最初のもの
55 を使う。ということは、localにsm_join された後、大域的
56 に接続される場合があるってことか。ってことは、やっぱり、
57 session manager id を配布するべきだってことね。で、
58 SMの名前はあくまでも補助的に使う。
59
60 UPDATEの情報によって削除も行なう。delete entry が必要。
61
62 Routing Table
63 <eid, channel>
64 <sid, channel>
65 null は、local。channel==parent なら、自分の下にはいない。
66
1 Tue Oct 14 06:02:37 JST 2008 67 Tue Oct 14 06:02:37 JST 2008
2 68
3 Todo: (kono) 69 Todo: (kono)
4 取りあえず、sm_join()からか。次は、join(),put()。そして、 70 取りあえず、sm_join()からか。次は、join(),put()。そして、
5 update()。select()。最後に、gather()。 71 update()。select()。最後に、gather()。