2010-12-02 65 views
4

我正在構建一個系統,其中多個用戶需要同時創建,查看和修改一組對象。Java服務器和瀏覽器客戶端之間樂觀對象複製的解決方案?

  • 該系統計劃運行在Java服務器和現代瀏覽器客戶端(我可以選擇哪一個)。
  • 在面對網絡和服務器中斷時,它必須是健壯的,用戶界面不能阻止修改,修改需要存儲在本地並在連接返回時發佈。
  • 在正常操作下,應該使用亞秒級延遲複製更改。
  • 網絡延遲和帶寬,cpu資源不太可能是大問題,規模大約在幾十到幾百個客戶端。
  • 可以將這些對象視爲原子值和結構集(即樹)的結構。看起來對象之間的引用是不必要的。
  • 我很滿意屬性級別上的最後寫入衝突解決方案,對快照一致性沒有任何特殊要求。我想通過UI報告寫入衝突。
  • 最初我正在尋求解決服務器和多個客戶端之間的複製問題。將來我可能也需要多級樹。任意複製結構不是必需的,但會使故障轉移或多主機更容易。

我遇到麻煩的問題是將更改複製到系統之間的對象。分佈式併發性很難,我想將這種複雜性委託給知道自己在做什麼的人。哪些庫/框架可以幫助複製部分?

我已經找到了XSTM,它的使命似乎幾乎正是我所需要的,但不幸的是,GWT部分似乎還沒有準備好,而且該項目似乎有一個不確定的未來。

如果沒有什麼真正有用的東西,那麼我正在尋找什麼算法對此有用的想法?

我目前正在考慮受DVCS和運營轉型啓發的東西。服務器將接受對象的變更集並拒絕衝突寫入。客戶端將追蹤最近已知的服務器狀態和本地進行的更改,檢測發佈的更改與本地更改之間的衝突,並根據接收到的服務器狀態重新設置非衝突的本地更改。

回答

0

某些分佈式數據庫是否爲Cassandra選項?它可能提供比您需要的更多,並且需要至少3個節點運行。

相關問題