什么是低延迟,低带宽算法,用于同步客户端和服务器之间的文本文件?
是否存在客户端发送其当前状态的增量并且它是服务器的最后一次ACK状态的设计?我在想Quake3网络..
编辑1:
更具体地说,diff / delta算法在客户端/服务器环境中的行为如何。
e.g。在客户端计算差异,发送到服务器,服务器解释并更新其存储,向客户端发送ACK是否更昂贵?或者是否有一个复制模型更便宜,其中客户端发送其完整状态,服务器存储它..?
编辑2:
100 KB文本文件。小东西,不是太大。
答案 0 :(得分:2)
答案 1 :(得分:1)
对于文本,您可以使用增量算法,例如,查看rsync的工作原理。
Google使用不同的方法更新Chrome,您可以“谷歌”查看。
编辑:如果是服务器生成一个更改并在许多客户端中复制,则应在服务器中完成。根据问题的变化,我了解客户端(或许多客户端)将产生更改并希望它们在服务器上进行复制。
嗯......我会考虑4件事:
太多客户端在服务器上发送和执行此操作:它几乎是一个DoS 如果客户端很少,服务器性能高,客户端性能低,我只会在服务器上执行此操作。 否则,我只会对客户这样做。
答案 2 :(得分:1)
如果客户端也编辑文本,并具有撤消/重做功能,则可以将撤消堆栈用于增量。对于大文本和使用撤消堆栈的小更改应该比运行差异更有效。