← 全部文章

指南

同步在底层如何工作 —— 密钥、LWW、墓碑

在第二台电脑上输入一个同步密钥,你的规则就在那里了。它在底层如何工作 —— 以及为什么当你在两台设备上同时修改规则时 JustZix 不会覆盖你的工作。

同步密钥

同步基于一个 25 字符的密钥。它在本地、在你的设备上生成 —— 后端从不看到它的明文,只保存一个 SHA-256 哈希。这意味着即便访问服务器数据库也揭示不了密钥。

按实体解决冲突

你在笔记本上改规则 A,在工作电脑上改规则 B,离线,同时进行。一旦连上,两个改动都必须调和。JustZix 按单个实体解决它,不是一锅端:没有「覆盖所有设置」这种东西。规则 A 和规则 B 是分开的实体 —— 两个改动都存活。

带 Lamport 时钟的 Last-Write-Wins

当同一个实体在两个地方改变时,较新的版本胜出 —— 「last write wins」。但「较新」不能依赖系统时钟(这些会漂移)。JustZix 使用 Lamport 时间戳 —— 一个每次修改都递增的逻辑计数器。这给出一个一致的事件排序,不管设备的时钟一致与否。

墓碑 —— 一次删除如何传播

删除比修改更难。如果一条被删的规则只是「消失」,另一台从没见过它消失的设备会在下次同步时把它重新加回来。所以一次删除留下一个墓碑 —— 一个「这个被删了」的标记。墓碑像任何其他改动一样传播,所以删除在所有设备上都是永久的。

当冲突发生在登录时

你在一台已经有本地规则的新设备上用一个密钥登录。JustZix 不猜 —— 它显示一个解决 UI:用服务器数据、上传本地数据,或者按 Last-Write-Wins 规则把两者合并。决定权在你。

另见

安装 JustZix —— 处处拥有同样的规则,没有丢失的工作。

为这篇文章评分

暂无评分 — 成为第一个。

自己动手试试

安装 JustZix,粘贴本文中的任意代码片段。两分钟,从零到一条在你所有设备上生效的规则。

获取 JustZix

功能 · 工作原理 · 示例 · 应用场景