Talos读写一致性

微信扫一扫,分享到朋友圈

Talos读写一致性

但是由于收到 ZK 通知的时间不能完全一致,少数时刻的视角并不一致,所以依据一致性哈希并不能保证同一时刻同一 Partition 目录只有一个 Talos Server 节点进行写入请求。

一致性哈希的作用是在大部分时间统一了各节点调度视角,各节点仅在哈希结果为应该接管某 Partition 时才参与其权限竞争,避免了无谓竞争造成的开销浪费。

02、分布式锁?

为了加强 Talos Server 节点与 Partition 的绑定关系,使用 TTL 的分布式锁机制给调度信息加锁,Server 节点会在超时时间之内续约。获得锁之后 Server 节点对此 Partition 标记为 Active 状态,Active 状态可以接受请求,反之则不能。

可见在分布式锁信息中,同一时刻 Partition 和 Server 节点唯一对应。那么这种方式是否能满足同一时刻同一 Partition 目录只有一个 Talos Server 节点进行写请求呢?否。

  • 不能保证 Partition 的 Active 状态与分布式锁信息的一致性:如果发生长时间 GC,续约间隔时间可能超过 TTL 时间,在 GC 完成和下次续约之间,可能出现实际已掉锁但状态为 Active 的窗口,如下图

  • 更不能保证写请求和分布式锁信息的一致性:Server 在 Active 时接受写请求,但写请求进行时 Server 有可能会掉锁

综上,不能保证同一时刻同一 Partition 目录只有一个 Talos Server 节点进行写入。

分布式锁的作用是在一定时间粒度锁定绑定关系,避免了时间粒度内的细微抖动触发的迁移,使得服务进一步稳定,但是它无法解决节点假死或写数据时掉锁引发的脑裂问题。

微信扫一扫,分享到朋友圈

Talos读写一致性

看好下饭菜品类,连锁餐饮品牌「兜约」用标准化模式升级传统“现炒”

上一篇

k8s支持容器核绑定

下一篇

你也可能喜欢

Talos读写一致性

长按储存图像,分享给朋友