(My Original Blog Post:
-*http://api-madness.com/post/eclipse-day-at-the-googleplex-wiring-hacker-synapses/)
[youtube]http://www.youtube.com/watch?v=GfeUCT-tRJQ[/youtube]
Attention! API Garbage (might be unreadable):operations local operation
Him in office okay is very unfortunate or fortunate that are here now so we are justifying a new is and Germany are in the screenshots of the new real-time Trinity facility that comes with me and will was lots which just means cool
operational transform into a recall of encoding more to register so it was supposed to go into this was supposed to be transformed with all the incoming remote
operation and its
locally conflict in
operation and what are we supposed to get here what is the
operational transform supposed to do here is that we resolve this before the new that no new insert a lower index position and go and change anyone have anything that s okay since this assertion did not in any case goes in this and so that s exactly what we do know a bit necessary everything so what happens to have another
operational transform your remote
operation of house
operation about this watch it happen insertion of an exposition is what we wanted
operations coming in but we have moved in NBC s right length of co
operation that s a regenerative cell but only the next index and nowhere else in the length of the Corporation and when we do things like this than what we have been without consistent documents to potential customers so as low pseudocode because I assure you it is a very simple case when facing is that while it s an insertion person insertion is not insertion person deletion is not a deletion person insurgents not to deletions against each other because all of these cases are more complicated than that and once you figure it out while corporations and you re comparing against you still have to see where the indices are and decide how to update those indices and is that we have these in a year of the Lord will cost a lower index of the higher index of
local opposite are indexed and how to model law optimistic concurrency control optimistic about the food supply something that you were a leader to your own Motley realtor should entertain him to users and applications like for instance the link s URL to ask and I think on the toilet explosion because you have to determine atomic
operations like for instance deletions and insertions eclipse video editing or document update mechanism actually has another notion of replacing it would be fun
operation and will think about this all of these atomic
operations they have to be some hall and how to define proper transformations for this so if you have to atomic
operations that means you are Jesus went up to possibilities is a common part through possibilities for the first
operation two for the second 15 minutes a square and is not and it gets worse after so if you were atomic
operations to someone better for them will come on
operations such as replacements us if you can overcome corporations like for instance insertions and deletions a replacement in the case of cola I ve realized us a deletion fellow insertion and that just looks wonderful or so this is just giving you some asymptotic notation so that it looks almost certain is that it s actually not really hurts limitations we have to think about it for a number of atomic
operations Square explained why and that still don t go into her no problem there then I showed you the pseudocode with NEC text with index checks that s always prefer text editing so it s a constant it doesn t change anything actually welcomes the complexity of your about depending on your viewpoint from you without the color was implementing self realizing this is really writing the code and this is not a runtime problem this is an implementation problem will just have your code will be terribly bloated if you come up with 50 atomic
operations just talk to you don t have to cover that many cases and things will work perfectly and thank God it s not a runtime problem because just imagine having and square complexity but in order to professor will tell you and your boss who is the leader in offering you the company antiseizure. I guess so no but if so if you re atomic
operations that are not would have another case and this case is fairly interesting this case is the one case that I could limit for my talk and distilled a little just to convey the basic idea of the basic solution we ve realized that offer a told you the
operations that are that you have been generated on documents that did not work by more than a single
operation somewhat new if you ve actually applied five
operations and number of
operations on your
local document and the remote
operation on your way to did not know does not know anything about these in your changes at the top of what was troubling that some kind of mechanism some kind of resolution. The problem is recapping what I just said that the generation of multiple
local changes while the remote
operation is still so so upon arrival at the remote
operation of
local talk as much as changed by single
operation a whole slew of
operations so the precondition for offers
operational transformations without this level of insertion that makes out like some exposition in which outsourcing she inserts up again so he does the same and now I must change of course it s communicated that
operational or not how the
operational transformation talk about this works actually you know we talked about this is easy due to divergence by another something else before she even receives the insertion of index positions the she doesn t insertion of a lower position be incorporate incorporate that change communicates that changed when a change at some point rise as though his
local document so the only
operation that insertion vetoes not know off that so we generated is still the single insertion of index positions the weekend and apply
operational transformation and the progress and it s all intention preserving the insertion they are positioned insertion at an exposition B. and insertions the state sucks but what happens is a lease insertions the on switch and a well-traveled really really long at
local document after Anna has executed to
local operations can be applied over an
operational transformations unfortunately know we cannot so are we supposed to do but part so let s have a look at the relation of the revolution is actually not that hard to just takes a little thinking about weekend executing
operational transformation and we do that asleep before this insertions the insertion a this will yield a new operator platform
operation at another update in the position we call this progress are insertion of an exposition box start and were accepted as he positions the were purple was supposed to go to plus obviously the length of a NL really think about Jamie apply that purpose corporation directly to
local documents and the answer is unfortunately know we cannot because there s insertion being in again with index positions so not too now fall read/write registers at the start of the next
operational transformation is the other
operations gossiping with and ideals are to star and purple to start it at this and other update index which is why he lied again is the updated and extended for text s length between
operation insertion of an exposition B. and now that we have this we can actually execute the right of the remote
operation on our
local doctrine state and get consistent documents once more and potential customers so now I will notice quickly reach out and tell you about additional details about a minute for this talk because I thought your time with time did not go as fast as I thought but in introducing these details would just like to
local talk as I said I will give you pointers to more documentation if you know if you re interested in the site suggest you look at the so what you have to do actually in order to be able to do these
operational transformations over several
locally applied
operations that are conflicting as to manage the
local queue on the Polish
operations obviously opt out of somewhere old which
operations to have not been received by the other editor is a ream of examples in order to know what to transform against so to our
local operations as you type into your
local document to your queue and so the picture does not do at some point run your new machine is not out of memory after it removed his
local operations and how to remove them when you see out this viable state of their
operations communicate it comes a week that be that the
operations in the queue have been implicit knowledge like for instance is silly since you never
operation and that house like a cover-up so we sit insertion of the remote
operation counter that corporations are received Google is up to the song and store presentation that receive and get
operation in seating my
local queue of the most recent
local operation of genera I have in my
local queue has also
local counter of five no-hit five and 5 =.remote
operation is about my
local operations that you can enter the cube so that was not another issue that I rented his teeth is that with these out rooms in 2006 30 hours before the code freeze before D Amico faced the happy hacking 30 hours of club knows this because he slept during that time and the mocha of them than we did the test sessions and everything so I clearly forgot about that you have actually got to update the
operations in your
local queue at your
local operations best to transform them against remote incoming
operations so he seems like this does not have to ring the bell and not have to know not to be theater clear again if I would explain this would just give the whole time probably but if you ever think about implementing suspect this week for scientific papers once more and if you do not have your own version of cola synchronization then you keep this in mind business and my business tricky detailed about it if the virtual update of chewed up
local operations are called virtual because you update them in the queue but it actually don t apply those changes to your
local doctrine in his certain changes like that syntax completion and stuff like that doesn t seem to either trigger document change event or there is really some other type of government I didn t have time for looking into this but that s the something people have been asked asking me after this week because I don t use Notes syntax completion in the upper import functionality because that just does not use the synchronization mechanism so I will have to make sure that I catch those and also see the mental synchronizer below the extended glucose index is a
No comments:
Post a Comment