25、软件开发中的数据处理与工作流模式解析

软件开发中的数据处理与工作流模式解析

1. 可变属性模式

在数据处理系统中,可变属性模式是处理数据变更的重要方式。当用户设备可能临时与服务器断开连接,或者网络连接缓慢时,这种模式允许节点自主记录属性的新值,无需事先与其他节点连接以防止并发更改。

1.1 结构

可变属性用一个事实来表示,实体作为前驱,值作为字段。为了跟踪随时间的变化,它在一个前驱集合中记录先前的版本。

fact Entity {
  identifier: type
}
fact EntityProperty {
  entity: Entity
  value: type
  prior: EntityProperty*
}

通常情况下,当用户更改属性时,前驱集合只捕获最近的版本,形成一个线性的属性事实链。但如果两个用户(或一个用户在两个设备上)同时更改一个属性,图就会分叉,形成一个有多个叶子节点的树。

1.2 并发更改处理

当节点计算出有多个叶子节点的树时,就识别出了并发更改。此时,应用程序通常会将所有叶子节点作为候选值呈现给用户,用户可以从中选择并解决冲突。应用程序也可以自行计算解决方案,比如通过对叶子节点应用一个简单的函数(如取最大值)。在极少数情况下,开发者可能会基于所有叶子节点的最近共同祖先来解决冲突,像 Git 这样的源代码控制系统会进行三方合并,但这种复杂函数不适用于大多数应用。
为了计算叶子节点集合,节点可以运行以下查询:

query valuesOfProperty(e: Entity) {
  match p: EntityProp
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值