> > There are two possible delta propagation models: client-server and > > peer-to-peer. The existing model, client-server, requires that all > > deltas pass through the wavelet host before being broadcast to > > participating remote servers and doesn't need support TP2 in order to > > work. The peer-to-peer model, where each server sends deltas directly > > to all participating servers, does require TP2 in-order to work. > > Just because you CAN support a peer to peer network topology does not > mean that you have to set one up... >
If you want multiple redundant servers, then you will have to use a peer-to-peer propagation model. > > > I hope we all agree that the peer-to-peer model can not be secured. If > > five servers are participating, then no single server can prevent the > > others from participating in the wave. > > Why? Call one of the server the "authority" and it can accept and > reject deltas based on what ever security model you like. If you want > the authoritative version of a document, get it from the authoritative > source (or validate it against the authoritative source, say with a > hash). > Let's consider the case where servers A, B and C are participating in a wave using the peer-to-peer propagation model. When server A generates a delta it will sends that delta to servers B and C. Server C cannot prevent server A from sending deltas to server B. It can reject deltas from server A but this prevent convergence and eventially it would no longer be able to participate because it's version of the wave would deviate too much from the version that A and B contain. > > > The question is, what would be gained by adding TP2 support to the > > client-server model, since ALL deltas are serialized through the > > wavelet host? > > 1) Better interactivity due to lower latency > 2) Simpler protocol as there is none of this sever ack guff > Server's will still need to communicate successful receipt of deltas. > 3) Simpler "recovery" when something crashes > 4) Fail-over support through redundant servers > There is no redundancy in a client-server propagation model. > 5) Scaling through adding servers (akin to a web server farm) > This is already possible and is how Google manages to handle the deltas from over 100,000 users. They are not running wave on a single machine. Each wavelet is handled on a single machine, but the whole system can be spread across multiple machines. Each wavelet still has only one master. > 6) Branching and merging of data in an arbitrary manner > Branching and merging is still possible without TP2. > 7) Distributing the OT load across multiple servers > This already happens. Each wavelet will need to be procesed on only one machine concurrently, but thousands of wavelets can be processed on thousands of servers concurrently. -Tad -- You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.
