這是客戶端/服務器應用程序系統。同步條目順序的算法
客戶端應用程序可以進入脫機模式,有時會與服務器同步。 (比如GMail離線)
多個客戶端可以連接到服務器,因此每個客戶端都可以添加,編輯和刪除它的條目,並像SVN一樣同步這些更改(碰撞可能會發生,但這不是問題。)
添加,編輯和刪除條目的算法是微不足道的。服務器可以爲每個新條目創建一個唯一的ID,客戶端使用這些ID進行更新和刪除。
新的要求是條目的排序。
有兩個客戶端應用程序 - x,y。並且它們存儲條目-A,B,C和D.這些條目排列爲DCBA,因此A的順序屬性是4,B是3,C是2,D是1.
- x:DCBA: A(4),B(3),C(2),d(1)
- Y:DCBA:A(4),B(3),C(2),d(1)
客戶ÿ創建d和C
- x與新條目E:DCBA:A(4),B(3),C(2),d(1)
- y:D-E-C-B-A:A(5),B(4),C(3),D(1),E(2)
雙方客戶端與服務器同步後。
- X:DECBA:A(5),B(4),C(3),d(1),E(2)
- Y:DECBA:A(5),B(4) ,C(3),D(1),E(2)
如何同步這些訂單信息?
*附加測試*
Cient X除去d和C,但客戶端ÿ創建d和C之間新項E
- X:BA:A(2) ,B(1)
- Y:DECBA:A(5),B(4),C(3),d(1),E(2)
同步後。
- X:CBA:A(5),B(4),C(3),d(1),E(2)
- Y:CBA:A(5),B(4) ,C(3),d(1),E(2)