CRDT宝典 - Multi-Value-Register

宝典目录

背景

学了这么多state-based CRDT,我们发现merge一般都要解决冲突(除了kernel), 我们比较两个对同一个元素的操作,有四种状态

  1. 大于
  2. 小于
  3. 等于
  4. 冲突

当状态为冲突时,我们有一些解决冲突的方式,比如

  1. 基于LLW-Register的last-write-wins策略
  2. 基于GCounter的Add-Wins策略

可是我们业务有一些场景,需要在实际遇到冲突时,才决定使用什么策略来解决冲突,比如权限问题,权限高的用户可以覆盖权限低的用户,权限低的用户不能覆盖权限高的用户。

这就要求我们的CRDT在遇到冲突时,将冲突抛出,由实际的业务代码来决定使用什么策略来解决冲突。

它有一个专业的名字:多值寄存器,Multi Value Registers。

这个MVR在初始化时,需要业务代码里传入解决冲突的算法,然后将其应用在CRDT上。

相关推荐
x_yeyue9 小时前
三角形数
笔记·算法·数论·组合数学
kyriewen9 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm9 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy10 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程
念何架构之路10 小时前
Go语言加密算法
数据结构·算法·哈希算法
AI科技星10 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
失去的青春---夕阳下的奔跑10 小时前
560. 和为 K 的子数组
数据结构·算法·leetcode
zhangxingchao10 小时前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端
IT_陈寒10 小时前
SpringBoot那个自动配置的坑,害我排查到凌晨三点
前端·人工智能·后端
Honor丶Onlyou10 小时前
VS Code 右键菜单修复记录
前端