-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Latency issues causing out-of-sync OT issues #226
Comments
Luna-Klatzer
added a commit
that referenced
this issue
Nov 6, 2024
…ational system based on ot.js from Tim Baumann WIP
Luna-Klatzer
added a commit
that referenced
this issue
Nov 6, 2024
Luna-Klatzer
added a commit
that referenced
this issue
Nov 6, 2024
Luna-Klatzer
added a commit
that referenced
this issue
Nov 8, 2024
Luna-Klatzer
added a commit
that referenced
this issue
Nov 23, 2024
…ational system based on ot.js from Tim Baumann WIP
Luna-Klatzer
added a commit
that referenced
this issue
Nov 23, 2024
Luna-Klatzer
added a commit
that referenced
this issue
Nov 23, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When writing a file with multiple issues using a remote server where the latency can be >100ms, the various clients can receive so-called state inconsistency errors where OT transformations are incorrectly applied and then cause inconsistencies.
To fix this, we simply need to enforce a general rule of absolute eventual truth by making the client and server reshuffle transformations based on the date, meaning that each version of the file will eventually receive all the transformations and can build together the file. While this may mean more processing as sometimes a few dozen transformations will need to be reverted, pushed on top of new intermediate OT transformations and then applied again, this would ensure that all clients and the server share an absolute truth based on the UNIX timestamp which is using milliseconds i.e. can compare OT transformations very accurately.
This is also something which is shown off in this demo: https://operational-transformation.github.io/
The text was updated successfully, but these errors were encountered: