关于OT算法

关于OT算法1 关于 OT 假如 A 用户看到一段初始文本 内容是 abc 然后 A 想第 3 个位置后面 插入 d abcd 假如 B 用户看到一段初始文本 内容是 abc 然后 B 想在第 3 个位置后面插入 e abce 不做锁处理或者丢处理 那我们就保留最大内容 A B 先后执行 应该是 abcde 如何按实际执行结果来看 如果各自操作 没有 OT 算法的处理 那么 A 看到的内容就会是 abced A 在第 3 个位置后面 然 ot 算法

1.关于OT

 

假如 A 用户看到一段初始文本,内容是 “abc”,然后 A 想 第 3 个位置后面,插入”d” => “abcd”

假如 B 用户看到一段初始文本,内容是 “abc”,  然后 B 想在第 3 个位置后面插入”e” => “abce”

 

不做锁处理或者丢处理,那我们就保留最大内容(A,B先后执行),应该是 “abcde”, 如何按实际执行结果来看:

 

如果各自操作,没有 OT算法的处理,那么 A 看到的内容就会是  “abced”(A在第 3 个位置后面,然后 B 想在第 3 个位置后面插入”e” => abce),对于 B 用户而言,他实际上得到了一个顺序执行,就是  B 想在第 3 个位置后面插入”e” => abce ,  然后 A 想 第 3 个位置后面插入”d”,最后得到的就是 "abcde", B的结果刚好复合,这个时候B是对的,A就是错的,所以 A 最终看到的不应该是原始的B操作,而是转化后的,他应该得到 “B想在第4个位置后插入e”,因此,我们要引入一个OT算法,最终结果就是说:

 

文本内容 = A内容 x B’ = A内容 x follow(A,B) = merge(A,B)  = B内容 x A’ = B x follow(B,A)

 

Follow函数 的第一个参数代表第一个执行的操作,第二个参数代表后执行的操作

今天的文章 关于OT算法分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-13 10:33
下一篇 2024-12-13 10:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/85405.html