Java服务器和浏览器客户端之间的乐观对象复制解决方案?
我正在构建一个系统,多个用户需要同时创建、查看和修改一组对象Java服务器和浏览器客户端之间的乐观对象复制解决方案?,java,javascript,algorithm,replication,Java,Javascript,Algorithm,Replication,我正在构建一个系统,多个用户需要同时创建、查看和修改一组对象 该系统计划在Java服务器和现代浏览器客户端上运行(我可以选择哪个) 它需要在网络和服务器中断时保持健壮,用户界面不得因修改而阻塞,修改需要存储在本地,并在连接恢复时发布 在正常操作下,应以亚秒的延迟复制更改 网络延迟和带宽、cpu资源不太可能是大问题,规模在数十到数百个客户端之间 对象可以被视为原子值的结构和结构集(即树)。似乎对象之间的引用是不必要的 我对属性级别上的上次写入wins冲突解决很满意,对快照一致性没有任何特殊要求。
- 该系统计划在Java服务器和现代浏览器客户端上运行(我可以选择哪个)
- 它需要在网络和服务器中断时保持健壮,用户界面不得因修改而阻塞,修改需要存储在本地,并在连接恢复时发布
- 在正常操作下,应以亚秒的延迟复制更改
- 网络延迟和带宽、cpu资源不太可能是大问题,规模在数十到数百个客户端之间
- 对象可以被视为原子值的结构和结构集(即树)。似乎对象之间的引用是不必要的
- 我对属性级别上的上次写入wins冲突解决很满意,对快照一致性没有任何特殊要求。不过我想通过UI报告写冲突
- 最初,我希望解决服务器和多个客户端之间的复制问题。将来我可能还需要多层树。任意复制结构不是必需的,但会使故障切换或多主机更容易
我目前正在考虑DVCS和运营转型带来的灵感。服务器将接受对象的更改集并拒绝冲突写入。客户端将跟踪最后一个已知的服务器状态和本地所做的更改,检测已发布的更改和本地更改之间的冲突,并在接收到的服务器状态之上重新确定未确认的本地更改的基础。是否可以选择某个分布式数据库?它提供的可能比您需要的多,但至少需要3个节点运行