diff Todo @ 486:877aacde8651

new merge on going...
author one
date Thu, 21 Oct 2010 20:30:52 +0900
parents cc262a519b8a
children 455df381449a
line wrap: on
line diff
--- a/Todo	Wed Oct 20 22:59:19 2010 +0900
+++ b/Todo	Thu Oct 21 20:30:52 2010 +0900
@@ -1,18 +1,66 @@
+Thu Oct 21 12:27:44 JST 2010
+
+外部からのINESRT に USER_INSERTがはまりこんでいるが…
+
+    Editor               SM
+                                          <---INSERT----
+       <---INSERT----       (start_merge)
+       --U_INSERT1-->       truncate
+       ----INSERT--->       start_merge
+       --U_INSERT2-->       truncate
+       <--START_M----       (U_INSERT1, U_INSERT2)
+
+INSERTが来た時点でEditorをlockすれば、二つめは止めるが。
+でも、問題はないはず。余計に tuncate しても問題ない。
+
+                                          --U_INSERT0-->
+                            (U_INSERT0)
+                                          <---INSERT----
+       <---INSERT----       (start_merge)
+       --U_INSERT1-->                     --U_INSERT1-->
+       ----INSERT--->       start_merge
+                            (U_INSERT0, U_INSERT1, INSERT)
+                                          --INSERT-->
+       --U_INSERT2-->                     --U_INSERT2-->
+       <--START_M----       (U_INSERT0, U_INSERT1, INSERT, *,  U_INSERT2)
+       --U_INSERT3-->                     --U_INSERT3-->
+       --STARTM_ACK->
+       --U_INSERT4-->       (U_INSERT0, U_INSERT1, INSERT, *,  U_INSERT2, U_INSERT3, U_INSERT4)
+                                          --U_INSERT4-->
+
+ええと、INSERT は、U_INSERT[01] は追い越すべき。U_INSERT[2-4]
+は追い越さない。* は merge_mark
+
+start_merge 以降は外部commandはブロックされるので問題ない。
+
+ってことは、まずいっていうことね。U_INSERT1/U_INSERT2 を
+block しても良いのだが、undo は必要なのでblock出来ません。
+
+    sentList, unMegeList には随時追加 (merge 中はtruncateしない)
+    sort は、MERGE_MARK まで
+    merge_end で、user command があれば、truncate
+
+かな。で、preMergedCommand の送信タイミングは? 戻って来た順に出してしまって良い?
+
 Wed Oct 20 20:35:53 JST 2010
 
-    Editor1   Editor2    Editor3 
-    c(eid=1)             a(eid=3)
-    a(eid=3)  c(eid=1)           
-              e(eid=2)   c(eid=1)
-    c(eid=1)  a(eid=3)   e(eid=2)
-    e(eid=2)  ca(eid=1)  a(eid=3)
-    aa(eid=3) e(eid=2)   ca(eid=1)
-    ca(eid=1) aa(eid=3)  ea(eid=2)   
-    ea(eid=2) ca(eid=1)
-                        ca(eid=1)
+    Editor1    Editor2    Editor3 
+    c(eid=1)              a(eid=3)
+    a(eid=3)*  c(eid=1)*          
+               e(eid=2)t  c(eid=1)*
+    c(eid=1)t  a(eid=3)*  e(eid=2)*
+    e(eid=2)*  ca(eid=1)t a(eid=3)t
+    aa(eid=3)t e(eid=2)t  ca(eid=1)t
+    ca(eid=1)t aa(eid=3)t ea(eid=2)t  
+    ea(eid=2)t ca(eid=1)t
+                          ca(eid=1)t
 
     [c,e,a]   [c,e,a]    [c,e,a]
 
+sort は、どの範囲?
+    全部で良い
+と言うことは、そこに MERGE_MARK は必要ない
+
 
 Fri Oct 15 19:47:05 JST 2010