7 ms·
I found this recent paper highly enlightening: “Real Differences between OT and CRDT for Co-Editors”– Chengzheng Sun, David Sun, Agustina, Weiwei Cai, October
by AnthonBerg 7y ago
I found this recent paper highly enlightening: “Real Differences between OT and CRDT for Co-Editors”–
Chengzheng Sun, David Sun, Agustina, Weiwei Cai, October 2018.
Arxiv meta: https://arxiv.org/abs/1810.02137 https://arxiv.org/abs/1810.02137
PDF: https://arxiv.org/pdf/1810.02137.pdf https://arxiv.org/pdf/1810.02137.pdf
It’s well written imo. The conclusions chapter is very good.
“In this work, we have critically reviewed and evaluated representative OT and CRDT solutions, with respect to correctness, time and space complexity, simplicity, applicability in real world co- editors, and suitability in peer-to-peer co-editing. The evidences and evaluation results from this work disprove superiority claims made by CRDT over OT on all accounts.”
And it is also argued that OT is a more direct approach to the fundamental issues of realtime multiuser editing, and that that directness brings effectiveness.
HN discussion: https://news.ycombinator.com/item?id=18191867 https://news.ycombinator.com/item?id=18191867
- mkl 7y agoDo you have any idea which would be better for a vector based drawing app? The data is mostly strokes (lists of points), and individual strokes generally don't change.
- alpyne 7y agoFrom the introduction: "After over a decade, however, CRDT solutions are rarely found in working co- editors or industry co-editing products, but OT solutions remain the choice for building the vast majority of co-editors. In addition, the scope of nearly all CRDT solutions for co-editing are confined to resolving issues in plain-text editing, while the scope of OT has been extended from plain-text editing to rich text word processors, and 3D digital media designs, etc."
- mkl 7y agoI'm not sure what to make of that, though, as there seem to be quite a few different JSON CRDT libraries, for example. Just after that it says "The contradictions between these realities and CRDT’s purported advantages have been the source of much debate and confusion in co-editing research and developer communities." That's kind of my question/confusion: people writing CRDTs really talk them up, and I can't tell what's true in practice. I have no way to judge the accuracy of this paper myself (I don't know enough to really understand it), so I'm hoping someone who knows this stuff in a practical way can shed some light on it.
- AnthonBerg 7y agoI found that I could eventually power through the paper. I thought it was beyond me at first. Then I got angry and just shoved piece by piece into my head :) Not in linear fashion, and it didn’t happen quickly. Actully not that slow either once I got going. I found I was maybe rather more of a paper-reader than I assumed I was. Probably you too!!
- scofalik 7y agoSo, what is your conclusion after reading it?
- AnthonBerg 7y agoI found the arguments convincing, and will be moving towards OT in general. From outside it feels like OT is generally closer to how I tend to think.
- AnthonBerg 7y agoI don’t :) I’m just starting out. I’m sure that there are research papers addressing this question. However, I think either could work. The task mostly maps onto editing a long string, right?
- bikeshaving 7y agoFigma has a blog post about the algorithm they use for their collaborative editing features but no open source code as far as I can tell. https://www.figma.com/blog/realtime-editing-of-ordered-sequences/ https://www.figma.com/blog/realtime-editing-of-ordered-seque...
- phedkvist 7y agoI made a collaborative graph editing app using CRDTs in my master thesis. You can read about it here http://liu.diva-portal.org/smash/get/diva2:1292743/FULLTEXT01.pdf http://liu.diva-portal.org/smash/get/diva2:1292743/FULLTEXT0...
- scofalik 7y agoI still need to read that one, though it looks interesting (yes, I only got through the introduction and summary :)). Let's keep in mind that the authors already wrote several papers on OT (also ones that we based CKE5 on) -- so they have vast knowledge in the subject but may also favor one technology over the other. As much as I'd like to read that OT was the good choice I also want to be cautious in this regard :).
- scofalik 7y agoBTW. there's also a more fresh paper from the same authors: https://arxiv.org/abs/1905.01302 https://arxiv.org/abs/1905.01302 I don't know how much they differ, though.
- AnthonBerg 7y agoThanks!!
- nused 7y agoThanks for the mention. We've re-organized the material and updated the submissions by splitting into three parts. We wanted to extend the content but felt that in its original form the article was too dense. The new structure consists of three related but more self-contained articles to help articulate the key differences: Overview: https://arxiv.org/abs/1905.01518 https://arxiv.org/abs/1905.01518 Systems perspective: https://arxiv.org/abs/1905.01517 https://arxiv.org/abs/1905.01517 Correctness/theoretical perspective: https://arxiv.org/abs/1905.01302 https://arxiv.org/abs/1905.01302