关于锁的key的CreateRevision会等于0

来源:4-11 事务txn实现分布式锁(上)

慕九州9313697

2020-01-15

// 确保函数退出后, 自动续租会停止
defer cancelFunc()
defer lease.Revoke(context.TODO(), leaseId)

// 如果key不存在
txn.If(clientv3.Compare(clientv3.CreateRevision("/cron/lock/job9"), “=”, 0)).
Then(clientv3.OpPut("/cron/lock/job9", “xxx”, clientv3.WithLease(leaseId))).
Else(clientv3.OpGet("/cron/lock/job9")) // 否则抢锁失败

这段代码,lease.Revoke会将key的CreateRevision变成0吗,平时删除key或者cancelFunc() 这个操作不会将key的CreateRevision变成0的,下一次CreateRevision会再之前创建过的基础上+1
求解答

写回答

1回答

小鱼儿老师

2020-01-19

revision不会回退,是raft算法里的term id。

0
0

Go语言开发分布式任务调度 轻松搞定高性能Crontab

分布式系统设计+高并发细节处理,一次性让你“晋级”到位

1136 学习 · 177 问题

查看课程