changeset 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
files Todo
diffstat 1 files changed, 139 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Todo	Tue Oct 12 16:17:42 2010 +0900
+++ b/Todo	Fri Oct 15 19:37:18 2010 +0900
@@ -1,7 +1,146 @@
+Thu Oct 14 14:27:22 JST 2010
+
+でも単純ソートはうまくいかないはず。
+
+あ、そうか。このアルゴリズムだと、sentListがクリアされないものがいるね。
+
+二巡目のack で消すのだろうが...
+
+あとsortの範囲の問題がやっぱりある。
+
 Tue Oct 12 10:37:38 JST 2010
 
 やっぱり二周目に割り込んだコマンドが正しくsortされない。
 
+    Editor3   Editor2    Editor1 
+              e(eid=2)
+                         e(eid=2)
+    e(eid=2)             
+              e(eid=2)   c(eid=1)
+                         ea(eid=2)*
+    c(eid=1)
+    ea(eid=2)* c(eid=1)
+              ea(eid=2)* c(eid=1)
+    ca(eid=1)* 
+              ca(eid=1)* 
+                         ca(eid=1)* 
+
+    [e,c]     [e,c]      [c,e]
+
+うーん。
+
+    Editor3   Editor2    Editor1 
+              e(eid=2)   a(eid=1)
+    a(eid=1)             e(eid=2)
+    e(eid=2)  a(eid=1)
+              e(eid=2)*  c(eid=1)
+                         a(eid=1)*
+                         ea(eid=2)*
+    c(eid=1)
+    aa(eid=1)* c(eid=1)
+    ea(eid=2)* aa(eid=1)* c(eid=1)* 
+    ca(eid=1)* 
+               ca(eid=1)*
+
+    [a,e,c]   [a,e,c]    [a,e,c]
+
+他のエディタのコマンドが来た時に、優先順位でいきなりソート(merge)して良い。o
+    自分のコマンドは、過去の低い優先順位を追い越さない。 x
+    一周(ack)が来たら、そこまでのundoは捨てて順位は固定。  x
+既に他のコマンドを送信した後に、自コマンドが来たら、その前までの自編集以外の編集まで確定。o
+自コマンドのackで、まだ確定してない場合は確定。o
+他コマンドのackは何もしない o
+merge 中の自コマンドは、確定させて処理(merge後に送信と同じ)
+
+Ackが来たら確定で良い?
+
+    Editor3   Editor2    Editor1 
+    c(eid=3)  e(eid=2)   a(eid=1)
+    a(eid=1)  c(eid=3)   e(eid=2)
+    e(eid=2)  a(eid=1)   c(eid=3)
+    c(eid=3)* e(eid=2)*  d(eid=1)   <- このd がsortされない必要があるらしい
+    d(eid=1)  ca(eid=3)  a(eid=1)*
+    aa(eid=1)* d(eid=1)  ea(eid=2)*
+    ea(eid=2)* aa(eid=1)* ca(eid=3)*
+                         d(eid=1)*
+    da(eid=1)*
+              da(eid=1)*
+
+    [a,e,c,d]  [a,e,c,d]  [a,e,c,d]
+
+優先順位1でない場合
+
+    Editor1   Editor2    Editor3 
+    c(eid=1)  e(eid=2)   a(eid=3)
+    a(eid=3)  c(eid=1)   e(eid=2)
+    e(eid=2)  a(eid=3)   c(eid=1)
+    c(eid=1)* e(eid=2)*  d(eid=3)   <- このd がsortされない必要があるらしい
+    d(eid=3)  ca(eid=1)  a(eid=3)*
+    aa(eid=3)* d(eid=3)  ea(eid=2)*
+    ea(eid=2)* aa(eid=3)* ca(eid=1)*
+                         d(eid=3)*
+    da(eid=3)*
+              da(eid=3)*
+
+    [c,e,a,d]  [c,e,a,d]  [c,e,a,d]
+
+優先順位に関係なく、他コマンドの後の自分のコマンドは
+sort しないものらしい。
+
+そこにさらに他コマンドが割り込んだ場合は?
+
+    Editor1   Editor2    Editor3 
+    c(eid=1)             a(eid=3)
+    a(eid=3)  c(eid=1)           
+              a(eid=3)   c(eid=1)
+    c(eid=1)* e(eid=2)   d(eid=3)   <- このe,d がsortされない必要があるらしい
+    d(eid=3)  ca(eid=1)* a(eid=3)*
+    aa(eid=3)* d(eid=3)  e(eid=2)   <- a(eid=3)は確定、d(eid=3)は未確定
+    e(eid=2)  aa(eid=3)* ca(eid=1)* <- Editor1のe(eid=2)は、まだ未確定
+              e(eid=2)*  d(eid=3)*
+    da(eid=3)*           ea(eid=2)*
+    ea(eid=2)* da(eid=3)*           <- e(eid=2)を確定
+
+    [c,a,e,d] [c,a,e,d]  [c,a,e,d]
+
+e(eid=2) は d(eid=3) を追い越す必要がある。
+
+他のエディタのコマンドが来た時に、優先順位でいきなりソート(merge)して良い。o
+既に他のコマンドを送信した後に、自コマンドが来たら、その前までの自編集以外の編集まで確定。o
+自コマンドのackで、まだ確定してない場合は確定。o
+他コマンドのackは 二周目のackが来たら、そのコマンドまで確定
+merge 中の自コマンドは、確定させて処理(merge後に送信と同じ)
+
+    Editor1   Editor2    Editor3 
+    c(eid=1)             a(eid=3)
+    a(eid=3)  c(eid=1)           
+              a(eid=3)   c(eid=1)
+    c(eid=1)* e(eid=2)   d(eid=3)   <- このe,d がsortされない必要があるらしい
+    d(eid=3)             a(eid=3)*
+              d(eid=3)   e(eid=2)
+    e(eid=2) 
+              e(eid=2)*  d(eid=3)*
+
+    [c,a,e,d] [c,a,e,d]  [c,a,e,d]
+
+もしかして、ack って必要ないの? え〜
+
+    Editor1   Editor2    Editor3 
+    c(eid=1)  e(eid=2)   a(eid=3)
+    a(eid=3)  c(eid=1)   e(eid=2)
+    e(eid=2)  a(eid=3)   c(eid=1)
+    c(eid=1)* e(eid=2)*  d(eid=3)   <- このd がsortされない必要があるらしい
+    d(eid=3)             a(eid=3)*
+              d(eid=3)  
+                         d(eid=3)*
+
+    [c,e,a,d] [c,e,a,d]  [c,e,a,d]
+
+4つの場合の特殊性はある?
+
+
+
+
 Mon Oct 11 22:12:35 JST 2010
 
 あ、そうか。singleton case 中のコマンドは無視されてしまうわけね。SYNC すれば良いはずだが。