外观
来源修改与提交并发如何处理?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
典型竞态是:Worker 基于版本 V1 计算,用户把来源改成 V2,Worker 随后提交。只在投影时检查一次来源,会让 V1 推断在 V2 之后进入当前视图。候选必须带有服务端可核对的来源基准,并在提交时重新验证。
当前泛化提交路径会对来源采用确定的锁顺序并校验依据,包括版本或 digest 等;资源撤销也在事务中更新状态。关键是让会冲突的操作共享可串行化的状态检查边界,而不是在数据库外先查再无条件写。
Digest 用于检测内容或语义基准是否一致,不证明内容真实,也不天然赋予签名身份。相关版本字段的生成与更新规则必须清晰,纯格式变动是否触发语义版本变化应由项目协议定义。
追问与回答
为什么要按稳定顺序加锁
多个事务同时访问相同资源集合时,统一顺序可降低相互等待形成死锁的概率;仍需处理数据库检测到的死锁或冲突。
V1 结果能否保留
可以作为带权限的历史或待重新处理内容,前提是不能伪装为基于 V2 的当前有效知识。
易混淆点
- 在事务外核验一次版本后便认为后续不会变化。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q157