On Feb 27, 5:37 pm, chiang <[email protected]> wrote:
> On Feb 26, 1:16 pm, Alexandre Mah <[email protected]> wrote:

> > On 2/26/10, chiang <[email protected]> wrote:
> > I think you might have misinterpreted the scenario Daniel is
> > describing.  He's not describing the scenario where a client gets
> > disconnected and then needs to transform operations when it reconnects
> > (which we can already handle very easily and does not require TP2 at
> > all).  He's describing the case where the server loses its own data
> > (which is sort of already catastrophic in itself).
>
> > I believe what Daniel is suggesting (but please forgive me if I've got
> > this wrong) is that we change Wave from being a client-server protocol
> > to being something closer to a peer-to-peer protocol and let the
> > clients share some of the responsibility of reliably storing the
> > server's data, which seems (to me, at least) not to be such a
> > foolproof way to improve reliability of the server's data.
>
> This is getting confusing now, well for me at least and it doesn't
> help when I do not know TP2 well enough. I think I can see where
> Daniel is coming from, on getting operations back from clients after
> the server done a rollback. But here you are telling me that Google
> Wave (at least the wavesandbox or preview version do OT on client
> which I know) can already handle this. So what exactly is different
> between your implementation and TP2. And what type of OT is done on
> Google Wave client currently? Hope you understand as I have no insight
> into what Google Wave has implemented.
>

Hi Chiang,

The very simplistic way to understand TP2 is that it allows different
sites (be they clients or servers) to apply concurrent operations in
different orders and still achieve convergence - this is only a
problem when there are 3 or more sites exchanging operations.  Wave
avoids TP2 altogether as the server dictates the order in which
operations are applied and makes the exchange of operations always
look like there is only two sites involved.

You said:

> I think I can see where
> Daniel is coming from, on getting operations back from clients after
> the server done a rollback. But here you are telling me that Google
> Wave (at least the wavesandbox or preview version do OT on client
> which I know) can already handle this."

Alex said that Wave can handle the case where there is a communication
fault, but no data loss on the server.  He has not (yet) claimed that
clients can resend operations to the server after a server rollback.

I think that clients will not be able to send operations back to the
server after the server rolls back unless we satisfy TP2.  There is
always the chance that there are clients out there that have
operations that the server had once acknowledged but lost due to
rollback.  When they reconnect days or weeks later, the server may not
be able to accept these missing deltas from the client because new
operations have been accepted by the server - accepting the deltas
would man that the client and server apply the operations in different
orders, leading to divergence in certain circumstances (note: TP2
overcomes this divergence).  The scary thing is that if I had done
work that causally depends on the operations that the server lost, I
won't be able to commit that work either.

So, offline work is fraught with danger.  If there is a server
rollback while you were working offline, you may lose all your offline
work.  And of course, if there were a server fault, what would wave
users do...  they would work offline because the server is
unavailable.  Food for thought.

It would be nice to have a formal proof of this problem.

Cheers,

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.

Reply via email to