深入剖析 etcd 事务的实现细节并分析时钟回拨的各种边界条件及处理策略-Milvus

AI5天前发布 beixibaobao
6 0 0

1. TSO 状态在 etcd 中的存储

TSO 的持久化根键是rootcoord/timestamp(RootCoord 专用的路径),值是一个 64 位无符号整数,表示上一次已经分配出去的最大时间戳lastSavedTimestamp)。

  • rootcoord/timestamp

  • :8 字节小端序uint64

  • 操作保证:所有读写通过etcd 事务(Txn)实现原子 Compare-And-Swap(CAS),确保没有并发竞争。


2. etcd 事务细节:原子更新时间戳

2.1 核心流程(saveTimestamp函数)

internal/tso/tso.go中,timestampAllocatorsaveTimestamp方法执行以下原子操作:

  1. 读取当前 etcd 值:先通过clientv3.Get获取

© 版权声明

相关文章