线性协作对象同步与操作转换技术
在分布式系统的数据处理中,数据复制技术虽提升了性能和可用性,但也带来了副本不一致的问题。而操作转换(OT)算法为解决这一问题提供了思路,不过在处理具有线性结构的共享数据时,实现副本收敛仍是一大挑战。下面我们将深入探讨相关内容。
扩展状态机模型子模块构建
在扩展状态机模型里,当前处理组的错误状态(像图 8 中的状态 nC3.sE)会得到特殊对待。当处理到组错误状态的传入转换时,只有在转换不可控的情况下,转换源状态对应于错误状态的新状态分割才会被标记为其组的错误状态。例如,新状态分割 nB2.4 未被标记为其组的错误状态,因为转换 (nB2.4, {}, !O, {}, nC3.sE) 是可控的。
在确定化和去除不可控行为方面,通常采用子集构造算法对有限自动机进行确定化或去除内部转换。由于分割算法消除了转换保护带来的歧义,所以可以进行确定化。不过,确定化会因不可观测性产生新的不安全状态,这些状态以及通过不可控转换可到达不安全状态的所有状态都会被移除,使用的可控性标准与分割时相同,这和简单有限状态机模型的子模块构建情况类似。
操作转换方法
模型
OT 涉及多个站点,每个站点都有协作对象的副本。这里以文本对象为例,它由字符序列构成,首个字符位置为 0。文本状态只能通过以下两种基本编辑操作修改:
- Ins(p, c):在位置 p 插入字符 c。
- Del(p):删除位置 p 的字符。
这里的文本模型是众多基于线性结构的协作对象模型的抽象表示,字符参数可以是字符串、行、行块、有序 XML 节点等。
当编辑操作 op 在文本状态 s
超级会员免费看
订阅专栏 解锁全文
2315

被折叠的 条评论
为什么被折叠?



