comparison Todo @ 477:3cacd9d0e1c5

revert to old
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 15 Oct 2010 19:37:18 +0900
parents 2107530c3d72
children 607f1dfe2b80
comparison
equal deleted inserted replaced
472:2107530c3d72 477:3cacd9d0e1c5
1 Thu Oct 14 14:27:22 JST 2010
2
3 でも単純ソートはうまくいかないはず。
4
5 あ、そうか。このアルゴリズムだと、sentListがクリアされないものがいるね。
6
7 二巡目のack で消すのだろうが...
8
9 あとsortの範囲の問題がやっぱりある。
10
1 Tue Oct 12 10:37:38 JST 2010 11 Tue Oct 12 10:37:38 JST 2010
2 12
3 やっぱり二周目に割り込んだコマンドが正しくsortされない。 13 やっぱり二周目に割り込んだコマンドが正しくsortされない。
14
15 Editor3 Editor2 Editor1
16 e(eid=2)
17 e(eid=2)
18 e(eid=2)
19 e(eid=2) c(eid=1)
20 ea(eid=2)*
21 c(eid=1)
22 ea(eid=2)* c(eid=1)
23 ea(eid=2)* c(eid=1)
24 ca(eid=1)*
25 ca(eid=1)*
26 ca(eid=1)*
27
28 [e,c] [e,c] [c,e]
29
30 うーん。
31
32 Editor3 Editor2 Editor1
33 e(eid=2) a(eid=1)
34 a(eid=1) e(eid=2)
35 e(eid=2) a(eid=1)
36 e(eid=2)* c(eid=1)
37 a(eid=1)*
38 ea(eid=2)*
39 c(eid=1)
40 aa(eid=1)* c(eid=1)
41 ea(eid=2)* aa(eid=1)* c(eid=1)*
42 ca(eid=1)*
43 ca(eid=1)*
44
45 [a,e,c] [a,e,c] [a,e,c]
46
47 他のエディタのコマンドが来た時に、優先順位でいきなりソート(merge)して良い。o
48 自分のコマンドは、過去の低い優先順位を追い越さない。 x
49 一周(ack)が来たら、そこまでのundoは捨てて順位は固定。 x
50 既に他のコマンドを送信した後に、自コマンドが来たら、その前までの自編集以外の編集まで確定。o
51 自コマンドのackで、まだ確定してない場合は確定。o
52 他コマンドのackは何もしない o
53 merge 中の自コマンドは、確定させて処理(merge後に送信と同じ)
54
55 Ackが来たら確定で良い?
56
57 Editor3 Editor2 Editor1
58 c(eid=3) e(eid=2) a(eid=1)
59 a(eid=1) c(eid=3) e(eid=2)
60 e(eid=2) a(eid=1) c(eid=3)
61 c(eid=3)* e(eid=2)* d(eid=1) <- このd がsortされない必要があるらしい
62 d(eid=1) ca(eid=3) a(eid=1)*
63 aa(eid=1)* d(eid=1) ea(eid=2)*
64 ea(eid=2)* aa(eid=1)* ca(eid=3)*
65 d(eid=1)*
66 da(eid=1)*
67 da(eid=1)*
68
69 [a,e,c,d] [a,e,c,d] [a,e,c,d]
70
71 優先順位1でない場合
72
73 Editor1 Editor2 Editor3
74 c(eid=1) e(eid=2) a(eid=3)
75 a(eid=3) c(eid=1) e(eid=2)
76 e(eid=2) a(eid=3) c(eid=1)
77 c(eid=1)* e(eid=2)* d(eid=3) <- このd がsortされない必要があるらしい
78 d(eid=3) ca(eid=1) a(eid=3)*
79 aa(eid=3)* d(eid=3) ea(eid=2)*
80 ea(eid=2)* aa(eid=3)* ca(eid=1)*
81 d(eid=3)*
82 da(eid=3)*
83 da(eid=3)*
84
85 [c,e,a,d] [c,e,a,d] [c,e,a,d]
86
87 優先順位に関係なく、他コマンドの後の自分のコマンドは
88 sort しないものらしい。
89
90 そこにさらに他コマンドが割り込んだ場合は?
91
92 Editor1 Editor2 Editor3
93 c(eid=1) a(eid=3)
94 a(eid=3) c(eid=1)
95 a(eid=3) c(eid=1)
96 c(eid=1)* e(eid=2) d(eid=3) <- このe,d がsortされない必要があるらしい
97 d(eid=3) ca(eid=1)* a(eid=3)*
98 aa(eid=3)* d(eid=3) e(eid=2) <- a(eid=3)は確定、d(eid=3)は未確定
99 e(eid=2) aa(eid=3)* ca(eid=1)* <- Editor1のe(eid=2)は、まだ未確定
100 e(eid=2)* d(eid=3)*
101 da(eid=3)* ea(eid=2)*
102 ea(eid=2)* da(eid=3)* <- e(eid=2)を確定
103
104 [c,a,e,d] [c,a,e,d] [c,a,e,d]
105
106 e(eid=2) は d(eid=3) を追い越す必要がある。
107
108 他のエディタのコマンドが来た時に、優先順位でいきなりソート(merge)して良い。o
109 既に他のコマンドを送信した後に、自コマンドが来たら、その前までの自編集以外の編集まで確定。o
110 自コマンドのackで、まだ確定してない場合は確定。o
111 他コマンドのackは 二周目のackが来たら、そのコマンドまで確定
112 merge 中の自コマンドは、確定させて処理(merge後に送信と同じ)
113
114 Editor1 Editor2 Editor3
115 c(eid=1) a(eid=3)
116 a(eid=3) c(eid=1)
117 a(eid=3) c(eid=1)
118 c(eid=1)* e(eid=2) d(eid=3) <- このe,d がsortされない必要があるらしい
119 d(eid=3) a(eid=3)*
120 d(eid=3) e(eid=2)
121 e(eid=2)
122 e(eid=2)* d(eid=3)*
123
124 [c,a,e,d] [c,a,e,d] [c,a,e,d]
125
126 もしかして、ack って必要ないの? え〜
127
128 Editor1 Editor2 Editor3
129 c(eid=1) e(eid=2) a(eid=3)
130 a(eid=3) c(eid=1) e(eid=2)
131 e(eid=2) a(eid=3) c(eid=1)
132 c(eid=1)* e(eid=2)* d(eid=3) <- このd がsortされない必要があるらしい
133 d(eid=3) a(eid=3)*
134 d(eid=3)
135 d(eid=3)*
136
137 [c,e,a,d] [c,e,a,d] [c,e,a,d]
138
139 4つの場合の特殊性はある?
140
141
142
4 143
5 Mon Oct 11 22:12:35 JST 2010 144 Mon Oct 11 22:12:35 JST 2010
6 145
7 あ、そうか。singleton case 中のコマンドは無視されてしまうわけね。SYNC すれば良いはずだが。 146 あ、そうか。singleton case 中のコマンドは無視されてしまうわけね。SYNC すれば良いはずだが。
8 147