marc_shapiro
Re:Real Differences Between OT and CRDT for Co-Editors
on Friday October 19, 2018 @05:37AM (#18255419)
These optimisations (whole-string operations, compression, etc.) apply equally to CRDTs. See for instance DOI 10.1145/2957276.2957300. See also the blanket optimisations studied by Carlos Baquero's group (which I doubt could carry over to OT because of the complexity of OT theory).
Re:Real Differences Between OT and CRDT for Co-Editors
on Tuesday October 16, 2018 @12:07PM (#18230494)
Well, RGA has been proved formally [DOI 10.1145/2933057.2933090]. Regarding Figure 3 of the Treedoc paper, I believe the IDs of dY and dZ are in the correct order, according to the rules in the paper.
Re:Real Differences Between OT and CRDT for Co-Editors
on Tuesday October 16, 2018 @03:46AM (#18227457)
"Most OT algorithms have been proved incorrect": a better reference is https://doi.org/10.1016/j.tcs.2005.09.066
Re:Real Differences Between OT and CRDT for Co-Editors
on Monday October 15, 2018 @12:47PM (#18221304)
The argument of Sun's paper seems to be that CRDTs have hidden performance costs. Perhaps this is true.
This completely misses the main point. OT is complex, the theory is weak, and most OT algorithms have been proven incorrect (see http://hal.inria.fr/inria-00071213/). AFAIK, the only OT algorithm proved correct is TTF, which is actually a CRDT in disguise.
In contrast, the logic of CRDTs is simple and obvious. We know exactly why CRDTs converge. There are several papers proving that specific CRDTs are indeed correct.
Furthermore, I'm somewhat doubtful of the performance discussion, since Attiya et al. proved that there is a lower bound on the complexity of concurrent editing, independently of the technology used. See http://dx.doi.org/10.1145/2933057.2933090.
Disclaimer: I did not read the paper in detail, just skimmed over it.
Re:Antidote: CRDT-based distributed database
on Monday December 11, 2017 @12:14PM (#15898424)
Some conditional updates are safe; others require to add concurrency control. Our CISE analyser will tell precisely you which side a specific operation falls into. See https://youtu.be/HJjWqNDh-GA and http://dx.doi.org/10.1145/2911151.2911160. Antidote doesn't yet support concurrency control, it's work in progress.
Re:Antidote: CRDT-based distributed database
on Sunday December 10, 2017 @10:05AM (#15891681)
If the thing you "put" into is a CRDT, then two concurrent "put" will be merged, if that's OK for your application. If however you want to disallow concurrent "put"s then you need to add some concurrency control to the CRDT layer. See the CISE tool https://youtu.be/HJjWqNDh-GA, http://dx.doi.org/10.1145/2911151.2911160. Antidote doesn't yet support concurrency control, it's work in progress.
Re:Antidote: CRDT-based distributed database
on Sunday December 10, 2017 @09:59AM (#15891643)
An efficient implementation of RGA designed for concurrent editing: http://dx.doi.org/10.1145/2957276.2957300
Re:Antidote: CRDT-based distributed database
on Sunday December 10, 2017 @09:57AM (#15891630)
A write is fast, because it happens directly at the closest replica, without any inter-replica synchronisation. There is no schema per se; rather the DB is object-oriented, and each application picks the object types it needs from the CRDT library. The library currently covers the basics: registers, flags, sets, maps, lists.
Re:Antidote: CRDT-based distributed database
on Sunday December 10, 2017 @09:54AM (#15891615)
This was true of the early CRDT designs, but they have improved since then. You will find plenty of inspiration here: http://dblp.uni-trier.de/pers/hd/b/Baquero:Carlos
Re:Antidote: CRDT-based distributed database
on Sunday December 10, 2017 @09:51AM (#15891600)
See also this video comparing Antidote to other kinds of data stores: https://youtu.be/oWUNCsFy-r0