I think you might take a look at this -
https://github.com/campadrenalin/ConcurrenTree.
ConcurrentTree is an attempt to create "dsitributed" tree of OT nodes that
can receive operations in any order.



On Tue, Jun 11, 2013 at 1:53 AM, Michael MacFadden <
michael.macfad...@gmail.com> wrote:

> As a follow up.  While technically wave satisfies TP2 (in some regard)
> there are some other issues with the way it does so.  Good info can be
> found here:
>
> http://www.thinkbottomup.com.au/site/blog/Google_Wave_Intention_Preservatio
> n_Branching_Merging_and_TP2
>
>
> And
>
> http://www.corvalius.com/blog/index.php/technology/dissecting-googles-wave-
> technology/
>
>
> On 6/10/13 11:28 PM, "Dave" <w...@glark.co.uk> wrote:
>
> >Michael,
> >
> >On 10/06/13 21:53, Michael MacFadden wrote:
> >> Dave,
> >>
> >> Thanks for your thoughts.  A few things to consider.  There is a
> >> distinction between P2P messaging and P2P OT.  A system could reasonable
> >> have a client server messaging architecture where the server is a hub
> >>and
> >> the clients are spokes.  All messages from one client flow through the
> >> server to get to other clients.  However, even in this arrangement OT
> >>can
> >> still happen in a P2P mode.  If the server is simply acting as the
> >> messaging relay and doing no OT, then the OT can happen at the clients.
> >
> >Good point.
> >
> >> Googles Wave leverages client-server messaging AND client-server OT.
> >>That
> >> is the server is participating in the OT.  OT only happens in paris
> >> between the client and the server.
> >>
> >> In terms of mobile devices, unless we are talking about some form of
> >> bluetooth or local wifi, then it is likely that messaging with be client
> >> server.  However, how OT happens is up for debate.
> >>
> >> There are pros and cons to doing OT in a client-server or P2P manner.
> >
> >ok - I guess this is the what I was really asking. What are the
> >advantages of doing OT in a P2P manner?
> >
> >> Googles view was that if you have potentially hundreds or thousands of
> >> collaborators, then in a P2P mode you wind up with state vectors, vector
> >> clocks, or context vectors that are just to large.  Each peer has to
> >>track
> >> the state of each other client.  Operations typically have a context
> >> vector attached to them.  In this case you have context vectors, and
> >>state
> >> tables that grow out of hand.  Google chose to avoid this by using a
> >> client server OT model.
> >
> >I'm not familiar enough with Wave's code, but these sound like valid
> >design choices, even more so when aiming for a client on a phone or
> >phone like device?
> >
> >I guess having the server participate in OT also seems instinctively
> >more natural to me, so I'm trying to get up to speed with why a
> >wave-like system would benefit from P2P / TP2 style OT.
> >
> >> I think that saying that the wave algorithm doesn't satisfy TP2 is a bit
> >> inaccurate.  I believe it does satisfy TP2 in that three clients can
> >>still
> >> make concurrent edits to the document state.  The server simply chooses
> >>to
> >> canonically order these in order to ensure that TP2 is honored.  One
> >>could
> >> argue that the wave algorithm satisfies TP2 by never letting the
> >>situation
> >> arise in the first place, but in my view this still satisfies the
> >> requirement.
> >
> >Perhaps my understanding of the differences between TP1 and TP2 is
> >incorrect?  I thought TP1 resolved the three-way conflict by breaking it
> >down into two pairs (A+B = AB, AB+C = ABC), where TP2 also effectively
> >allows multiple changesets without implying order(so A+B+C = A+C+B =
> >C+B+A etc.).
> >
> >Both allow 3 or more participants, but TP1 requires changes to be merged
> >one at a time, which wave implements with a canonical ordering of
> >changesets. TP2 removes the requirement for a canonical ordering, and
> >allows the changesets to be applied in any order, with a guarantee that
> >once all changes are merged, the final document will be the same -
> >irrespective of the order the changes were applied.
> >
> >> FYI, I have worked extensively with Wave's OT, other systems OT
> >> algorithms, and have been working closely with the researchers who are
> >> working OT right now.  I think this is a very good discussion.  One I
> >>can
> >> bring to the larger OT community if we so desire.
> >>
> >> ~Michael
> >>
> >> On 6/10/13 9:38 PM, "Dave" <w...@glark.co.uk> wrote:
> >>
> >>> [John B - I wasn't sure where else it would be appropriate to ask this
> >>> question, but please forward on anywhere you think it appropriate]
> >>>
> >>> There are many things about Wave and WIAB that I would like to see
> >>> improved / changed, but based on my readings I've been content with the
> >>> TP1 OT approach chosen by google (not that I'm even close to an expert)
> >>> - even if the WIAB implementation would benefit from some love.
> >>>
> >>> But one of the things mentioned in the recent wave-forward hangout was
> >>> the weakness in Wave's OT implementation for a required canonical
> >>> version of a given wave (providing absolute ordering of changesets).
> >>> Specifically, this effectively prevents 3 party P2P messaging where
> >>> there isn't guaranteed to be that one canonical ordering. My
> >>> understanding is that Joseph is playing with some alternative OT
> >>> algorithms that are TP2, and therefore don't require arbitration of
> >>> changeset order. This was specifically called out as an advantage to
> >>> support P2P messaging and running the full stack on a phone.
> >>>
> >>> That got me thinking - why would you want to do that?  What are the
> >>> benefits of P2P messaging, and are there other reasons to need TP2?
> >>>
> >>> Most of the messaging and collaboration systems I could think of are
> >>> client-server (some with federated servers) and Wave/WIAB support this
> >>> with TP1.  Most networked phone apps that I'm aware of are also
> >>> client/server, and at first glance this seems a good thing - it makes
> >>> addressing easier and avoids issues with intermittent connectivity. The
> >>> ability to have a simple "wavelike" server (and detached clients)
> >>>
> >>> I suspect I'm missing something, and I wondered if I'm alone?
> >>>
> >>> My understanding is that technical interop between the various
> >>>wave-like
> >>> communities will need us to use the same OT alogrithm (eventually), so
> >>> clarity on the pros/cons of keeping or changing the wave OT approach
> >>> would be a good first step in that direction!
> >>>
> >>> Dave
> >>
> >>
> >
>
>
>

Reply via email to