深入剖析 etcd 事务的实现细节并分析时钟回拨的各种边界条件及处理策略-Milvus
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中,timestampAllocator的saveTimestamp方法执行以下原子操作:
-
读取当前 etcd 值:先通过
clientv3.Get获取
© 版权声明
文章版权归作者所有,未经允许请勿转载。