On Feb 26, 1:25 pm, Tad Glines <[email protected]> wrote: > > If you want multiple redundant servers, then you will have to use a > peer-to-peer propagation model. >
Agreed. > 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. Aren't they all servers that you trust and want them all to converge? Can you give a more specific case that you are worried about? I struggle to understand how this network could be established (ie, why did servers accept connections) if they did not want to exchange operations. > 2) Simpler protocol as there is none of this sever ack guff > > Server's will still need to communicate successful receipt of deltas. The TCP ACK is sufficient though. > > 4) Fail-over support through redundant servers > > There is no redundancy in a client-server propagation model. If the OT algorithms between client and server satisfy TP2, then the server can request operations that it has lost (say due to rollback) from clients. You can not do this with Waves OT implementation. Working offline with Wave is dangerous as you have no idea if you will be able to sent your offline work to the server as the server may have had a fault and rolled back. Yuk. > > 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. That's not what I mean - see comments below > > 6) Branching and merging of data in an arbitrary manner > > Branching and merging is still possible without TP2. No it's not. You're turn. > > 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. So, by "Distributing the OT load across multiple servers" you mean "putting the OT load for a given wavelet on a single server at any point in time"? You still have fundamental problems - let's sat that all 100,000 users all tried to edit the same wavelet. How do you distribute the the OT load? You can't. You're stuffed. With TP2 in the mix, you have multiple server take the load. The secret is to reduce the fan-in (ie, number of connections) on each server. Dang - i'ts no longer a secret. Dan -- 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.
