0
点赞
收藏
分享

微信扫一扫

go语言学习笔记43 租约 && MVCC && watch

租约 :检测客户端存活

go语言学习笔记43 租约 && MVCC && watch_数据结构

Lease 整体架构

go语言学习笔记43 租约 && MVCC && watch_多版本_02

etcd 在启动的时候,创建 Lessor 模块的时候,它会启动两个常驻 goroutine,如上图所示,一个是 RevokeExpiredLease 任务,定时检查是否有过期 Lease,发起撤销过期的 Lease 操作。一个是 CheckpointScheduledLease,定时触发更新 Lease 的剩余到期时间的操作。

go语言学习笔记43 租约 && MVCC && watch_数据结构_03

首先 Lessor 的 Grant 接口会把 Lease 保存到内存的 ItemMap 数据结构中,然后它需要持久化 Lease,将 Lease 数据保存到 boltdb 的 Lease bucket 中,返回一个唯一的 LeaseID 给 client

go语言学习笔记43 租约 && MVCC && watch_多版本_04

go语言学习笔记43 租约 && MVCC && watch_数据保存_05

go语言学习笔记43 租约 && MVCC && watch_多版本_06

go语言学习笔记43 租约 && MVCC && watch_数据结构_07

go语言学习笔记43 租约 && MVCC && watch_数据结构_08

go语言学习笔记43 租约 && MVCC && watch_多版本_09

go语言学习笔记43 租约 && MVCC && watch_数据保存_10

MVCC:如何实现多版本并发控制

go语言学习笔记43 租约 && MVCC && watch_数据结构_11


举报

相关推荐

0 条评论