Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

A.2 术语表

只收本书反复使用、且容易混淆的词。定义按「在本书语境下」写,不追求百科全书式完整。

A–C

ACID 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。注意 ACID 的 C 是「事务不破坏应用不变量」,不是「副本一致」。

at-least-once(至少一次) 消息/请求至少被处理一次,允许重复。工程上通常配合幂等消费。

at-most-once(最多一次) 最多处理一次,可能丢失。适合可丢的指标、日志。

backpressure(背压) 下游把「我处理不过来」的信号传回上游,让上游降速;不是简单地把队列加大。

CAP 分区(Partition)发生时,在一致性(C)与可用性(A)之间取舍的定理。精确表述见第 4 章;不要把它简化成「三选二」。

causal consistency(因果一致) 如果操作 A 因果先于 B,则所有节点看到的顺序都满足 A 在 B 前;并发操作可以不同顺序。

commit index 复制日志中已提交的位置;只有提交后的日志项才能应用到状态机(Raft 的规则)。

consistent hashing(一致性哈希) 把 key 映射到环上,节点增减时只迁移邻近区间;用于缓存分片与无主复制。

CRDT 无冲突复制数据类型;通过交换律/结合律/幂等性让副本最终收敛,不依赖协调。

D–F

deadline 请求的绝对截止时间;跨进程传播。与「超时」不同:超时是本地等待上限,deadline 是全局预算。

durable(持久) 写入在崩溃后仍可读。复制到多数派不等于持久,还要看是否 fsync、是否提交。

eventual consistency(最终一致) 在没有新写入的情况下,所有副本最终会收敛到同一个值;不规定多久。

exactly-once(精确一次) 端到端只产生一次效果。严格意义上在不可靠网络上无法仅靠传输实现,通常由「至少一次 + 幂等/去重/事务」组合出来。

fencing token 单调递增的令牌;资源端只接受比上次更大的 token,从而挡住过期锁持有者。

FLP 在异步网络中,即使只有一个进程可能崩溃,也不存在同时保证安全与活性的确定性共识算法。工程上用超时/随机化绕过。

G–L

gossip 节点周期性交换状态,最终传播到全集群;用于成员发现、失败检测、反熵。

happens-before(先行发生) 分布式系统中的偏序:同一进程的程序序、消息发送先于接收、传递闭包。

idempotency key(幂等键) 客户端为一次逻辑请求生成的唯一键;重试时复用,服务端据此去重。

isolation level(隔离级别) 事务之间的可见性规则;与副本一致性是不同维度。

linearizability(线性一致) 存在一个全序,扩展了每个操作的实时区间,且读返回全序中最近一次写的值。强于顺序一致。

Little’s law L = λW:系统中平均请求数 = 到达率 × 平均停留时间。容量估算的起点。

LWW(last-write-wins) 用时间戳/版本号决定冲突胜者;简单,但会丢并发写,且依赖时钟。

M–R

MVCC 多版本并发控制;读操作读快照,写操作产生新版本,减少读写阻塞。

PACELC 分区时在 A/C 之间选(PAC);无分区时在延迟(L)与一致(C)之间选(ELC)。

Paxos 一类共识协议;经典的两阶段(prepare/accept)保证安全性,Multi-Paxos 用稳定 leader 提升吞吐。

quorum 多数派;R + W > N 保证读写集合相交,但不自动等于线性一致。

Raft 以可理解性为目标的共识算法;强 leader、term、日志匹配、选举限制。

read index leader 在服务线性一致读前确认自己仍是 leader 并等待状态机追上提交位置的一种机制。

read repair(读修复) 读时发现副本版本不一致,顺手把最新值写回旧副本。

RPO / RTO 恢复点目标(能丢多少数据)/ 恢复时间目标(多久恢复)。复制拓扑的选择由它们驱动。

S–Z

Saga 把长事务拆成一系列本地事务,失败时执行补偿;没有全局隔离性。

sequential consistency(顺序一致) 存在一个全序,所有进程看到的顺序一致,且尊重每个进程的程序序;不要求与实时时间一致。

split brain(分裂脑) 两个节点同时认为自己是主,接受写入;通常由分区 + 过期租约导致。

stale read(陈旧读) 读到了比已确认写入更旧的值;是否允许取决于一致性契约。

state machine replication(状态机复制) 所有副本按相同顺序应用相同命令,得到相同状态;复制日志的核心。

TCC(Try-Confirm-Cancel) 业务层面的两阶段:预留资源、确认、取消;需要业务实现三个接口。

tombstone(墓碑) 删除标记;在分布式存储中用于让删除也参与复制与冲突解决。

two-phase commit(2PC) 协调者先询问参与者能否提交,再统一提交/回滚;阻塞式协议,协调者故障时参与者可能卡住。

vector clock(版本向量) 每个节点维护的计数器向量,用于判断因果先后与并发冲突。

write skew(写偏斜) 两个事务各读一部分、各写另一部分,合起来破坏不变量;快照隔离下仍可能发生,需要 SSI 或显式锁。

WAL(write-ahead log) 先写日志再改数据页;崩溃恢复的基础。

术语在正文首次出现时给英文与缩写;本表只做速查,不替代章节里的定义盒。