changeset 344:d07414ff79d3

*** empty log message ***
author kono
date Mon, 13 Oct 2008 16:56:39 +0900
parents 21ad256c25c2
children a092a8fe9d97
files Todo
diffstat 1 files changed, 30 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/Todo	Mon Oct 13 13:16:31 2008 +0900
+++ b/Todo	Mon Oct 13 16:56:39 2008 +0900
@@ -1,17 +1,41 @@
 Mon Oct 13 12:34:39 JST 2008
 
+Todo: (kono)
+sm_join時のloop の検出。sm_joinを受け取った時には、sm接続にloopが
+あるかどうかを調べる必要がある。これのテストも必要。
+host_aからのsm_joinを受け取ったら、sm_join_ackと同時に、親に
+ch_master(host_a)を送る。host_aがch_master(host_a)を
+受け取ったら、それはloop。sm_joinを送るのでも良いけど。
+
 Note: (kono)
-Session間の通信は、木を作って、自分の親に送り、親がACKをmulti castすれば良い。
-sm_join した時に、どちらが親になるかはどうやって決める? 繋げた先が親ってのが
-簡単。親がいないのがmasterとなる。親が死んだら自分が親。親が死んで、
-sessionがmasterを失った時は? loop の検出も必要。updateにunique idを
-付けて二度目が来たらloop、または重複。closeして良い。ch_masterは必要ない。
+複数のsession managerにsm_joinする場合もある。その場合は、
+親に代わりにsm_joinしてもらう? 親がreachableだとは限りませんが。
+禁止してもいいけど...
+ 
+sessionを持っているsm同士がsm_joinするとsidを付け直す必要が
+ある。これは大変だなぁ。これも禁止? join/select待ちは許される。
+まぁ、新しくsmを上げれば良いだけなんだが、内部的になんとか出来ないの?
+面倒なので、取りあえず禁止で良いです。もしかして、updateって、
+それよう?
+
+sidのnatという手はあるのか。かなり複雑だけど。それだと複数の親が
+いてもだいじょうぶか? ちゃんと書き換え出来るなら動くっぽい。あとで
+入れることも可能か。					
+
+Note: (kono)
+Session間の通信は、木を作って、自分の親に送り、親がack/updateをmulti cast
+すれば良い。sm_join した時に、どちらが親になるかはどうやって決める? 繋げた先が
+親ってのが簡単。親がいないのがmasterとなる。親が死んだら自分が親。親が死んで、
+sessionがmasterを失った時は? loop の検出も必要。
 再接続は可能? 可能だが、再put/join/selectする必要がある。
 put は、親まで上がってsidを決定しなければならない、その後、put_ackを出せる。
 joinは、localでの処理で問題ないが、join_ackはselectが終わってから出る必要がある。
 selectは session owner に行き着く必要がある。session がconnectionを
 持っているとは限らない。親がselectする方が自然か?
-put_ack/join_ack/select_ackは、updateを見てでの処理で良い?
+put_ack/join_ack/select_ackは、updateを見てでの処理で良い? 対象イベント
+が明示されていた方が楽だが...
+この方法だと、session managerはidは持っていないが、木構造の中でuniqeな
+位置を持つ。
 (前の資料があれば良いのに...)
 
 Mon Oct 13 02:57:45 JST 2008