Etcd控制标识介绍

名称 含义
Raft etcd 使用的一致性算法
WAL 预写 Log , 持久化数据, 防止节点重启等导致数据丢失
Snapshot 快照, 数据更新超过阈值时, 会通过快照的方式来压缩 WAL 文件大小
MVCC 多版本并发控制
DB boltdb / bboltdb , 实际存储 etcd v3 的数据
Revision 版本号, 作为 etcd 数据的逻辑时钟
Auth revision 鉴权操作所用的版本号, 为了避免 TOCTOU 问题引入
Propose 发起一次 Raft 请求提案
Committed 一半以上的节点同意这次请求后的状态, 此时数据可以被应用层 apply
Apply 应用层实际将 Committed 的数据应用到 DB
Compact 压缩历史版本数据
Defrag 碎片整理, 压缩 etcd 的 db 存储大小
Endpoint 客户端指定的 etcd 访问地址
Node 组成 etcd 集群的节点
Term Leader 任期, 每进行一次 leader 选举 Term 会增加 1
Index 单调递增, 每次经过 Raft 模块发起变更操作时由 leader 增加
CommittedIndex 经过 Raft 协议同意提交的数据 Index
AppliedIndex 已经被应用层应用的 Index
ConsistentIndex 为保证不重复 Apply 同一条数据引入, 保证 Apply 操作的幂等性
ReadIndex 通过 Raft 模块获取 leader 当前的 committedIndex

commitindex 指的是已经被大多数节点保存的日志的位置;

lastapplyindex 是这些被应用到状态机(KV存储)的日志的位置。只有日志被大多数节点 commit 之后, commitindex 才会被更新,之后才可以被 apply 。
读的时候,记录下此刻的 Commit Index 作为 Read Index ,然后一直阻塞等到 apply index >= read index 时,才允许去读取数据。

版本信息revision,以及keyindex,在默认不压缩的情况下,它会一直存在

https://blog.betacat.io/post/mvcc-implementation-in-etcd/
https://www.lixueduan.com/posts/etcd/12-mvcc-analyze/

你可能感兴趣的:(etcd,数据库)