把全书 36 章散落的术语按篇章收拢成可查、可背、可复述的对照表,解决面试中"听不出缩写"与写作中"译名不统一"两个问题。

C.1 用法说明

本附录的编排由两个用途决定。

用途一:面试时听到缩写能立刻反应。 对方说"你们那边 TLB 缺失严重吗",如果你需要三秒才能想起 TLB 是什么,这轮对话的节奏就丢了。C.3 是一张纯字母序的缩写速查表,专为这个场景准备——只给缩写、不给全称,因为面试官也常常只念缩写。

用途二:写作与表达时用词准确。 同一件事常有多个中文译名:page fault 有人译"缺页异常"、有人译"页错误";replica 有人译"副本"、有人译"从库"。混用会造成歧义,也会让面试官怀疑你是否真的读过英文原文。C.2 按篇章给出「中文 / 英文全称 / 缩写 / 一句话说明」四元组,C.4 专门收那些"中文看着像、意思完全不同"的术语对。

C.1.1 面试中该用中文还是英文术语

结论分三层,按重要性排序。

第一,技术名词首次提到时给英文原词,是性价比最高的专业度信号。 说"写时复制"与说"写时复制(copy-on-write, COW)",后者只多四个英文单词的成本,却同时证明了三件事:你读过英文资料、你能把中文译名和英文原词对应上、你的表述可被对方直接映射到他熟悉的技术栈。全书统一采用这个格式:中文(English full name, ABBR)。

第二,缩写必须先展开再使用,除非对方已经先用了。 直接说"我们用 CLH 变体队列"而对方一时没反应,交流就断了;说"AQS 内部的 CLH(Craig, Landin and Hagersten)变体队列",就同时给出了层级关系与全称。反过来,如果面试官已经说了"你们的 ISR 怎么维护",你就不必再把 in-sync replica 展开一遍——重复展开会显得刻板,像是在背稿。

第三,做不到全称准确时,宁可只说中文,也不要拼错英文。 把 synchronous 少写一个 h、把 parallelism 和 parallel 混用、把 persistence 写成 persistant,副作用大于收益:面试官会立刻判断你没读过原始文档。本附录的英文全称已逐条核对,按表里的写法念即可。

提示

记忆锚点:缩写表的阅读顺序应按"先中文、后英文"建立索引。背的时候拿中文词去回忆英文全称(“组相联 → set-associative”),而不是反过来——因为面试中你先想出的是概念,再需要把它说成英文。

C.1.2 三节的配合方式

  • 面试前 30 分钟:只翻 C.3,把"只给缩写"的条目读一遍,确认每个缩写能在两秒内说出全称。
  • 面试中听到陌生词:先在 C.4 查是否有易混项,再看 C.2 对应篇章取全称与一句话定位。
  • 写作与画图时:用 C.2 的英文全称,保证同一概念在全章首次出现时格式一致。

C.2 按篇章组织的术语表

各篇的术语数量与该篇章节数、术语密度成正比:第五篇(数据库,8 章)与第二篇(操作系统,6 章)条目最多,第八篇(场景设计,1 章)最少。

C.2.1 第一篇 计算机组成与体系结构

表 C-1-1 第 1 章 存储层次与 CPU 微架构

中文英文全称缩写一句话说明
缓存行cache line—CPU 与内存交换数据的最小单位,x86 通常 64 字节
空间局部性spatial locality—访问了地址 a,附近地址很可能接着被访问
伪共享false sharing—两个线程写同一缓存行里的不同变量,行在核间来回弹跳
直接映射direct-mapped—每个内存块只能进唯一一个缓存位置,冲突缺失多
组相联set-associative—每组 N 路,块可选组内任一路,冲突与比较开销的折中
写回write-back—命中时只改缓存并置脏位,行被换出时才写回内存
缓存一致性cache coherence—保证多核看到的同一地址值最终收敛到一致
MESI 协议Modified-Exclusive-Shared-Invalid protocolMESI四种状态描述行的独占与失效,是失效型协议基线
MOESI 协议Modified-Owned-Exclusive-Shared-Invalid protocolMOESI增加 Owned 态,脏数据可在共享状态下由某核持有
转换检测缓冲区translation lookaside bufferTLB页表项的缓存,命中则完全不访问页表
平均访问时间average memory access timeAMATAMAT = 命中时间 + 缺失率 × 缺失代价
流水线冒险pipeline hazard—结构、数据、控制三类,分别对应资源冲突、依赖、跳转
分支预测branch prediction—预测方向与目标地址,猜错要清空流水线
推测执行speculative execution—结果确定前先执行,猜错则回滚,Spectre 类漏洞的土壤
乱序执行out-of-order executionOoOE只受真实数据依赖约束,窗口内乱序发射
寄存器重命名register renaming—消除名字依赖,把 WAR/WAW 消掉,只留真依赖
重排序缓冲区reorder bufferROB乱序执行、顺序提交的落地结构
指令级并行instruction-level parallelismILP同一时刻可并行执行的指令数
非一致内存访问non-uniform memory accessNUMA本地与远端内存延迟不同,跨节点访问多一跳

表 C-1-2 第 2 章 程序如何真正运行

中文英文全称缩写一句话说明
可执行与可链接格式Executable and Linkable FormatELFLinux 下的目标文件与可执行文件格式,含节表与段表
位置无关代码position-independent codePIC代码不写绝对地址、靠 GOT 间接寻址,才能装载到任意基址
过程链接表procedure linkage tablePLT每个外部函数一个跳转桩,首次调用后改写为真实地址
全局偏移表global offset tableGOT运行时存放外部符号真实地址的表
延迟绑定lazy binding—首次调用才解析符号,用启动时间换启动速度
静态链接static linking—库代码复制进可执行文件,无外部依赖但体积大
动态链接dynamic linking—运行时由动态链接器 ld.so 装载共享库
预加载preloadLD_PRELOAD用环境变量插到符号解析最前面,可覆盖库函数
地址空间布局随机化address space layout randomizationASLR随机化栈、堆、库基址,抬高漏洞利用门槛
字节序endianness—小端低字节在前(x86),大端高字节在前(网络序)
内存对齐memory alignment—结构体按成员最大对齐数补齐,用空间换单次访存
栈帧stack frame—一次调用的现场:返回地址、保存的寄存器、局部变量
调用约定calling convention—参数走寄存器还是压栈、谁清栈、谁负责保存

表 C-1-3 第 3 章 性能工程:从纳秒到毫秒

中文英文全称缩写一句话说明
阿姆达尔定律Amdahl’s law—加速比上限由不可并行的那部分决定
古斯塔夫森定律Gustafson’s law—问题规模可随核数放大时,加速比近似线性
利特尔法则Little’s law—L = λ × W,并发数等于到达率乘平均驻留时间
响应时间latency—单次请求从发出到收到结果的耗时
百分位延迟percentile latencyP9999% 的请求快于该值,比均值更能暴露问题
尾延迟tail latency—延迟分布尾部的那些慢请求
尾延迟放大tail amplification—一次请求扇出 N 个下游后,整体 P99 被最慢的那个拖走
USE 方法utilization, saturation, errors methodUSE资源视角三问:使用率、饱和度、错误
RED 方法rate, errors, duration methodRED服务视角三问:请求速率、错误数、耗时
抖动jitter—延迟的波动幅度,均值掩盖不了它
服务等级指标service-level indicatorSLI用来度量服务质量的那个具体数字
服务等级目标service-level objectiveSLO对 SLI 设定的内部目标值
服务等级协议service-level agreementSLA对外承诺并附带违约后果的合同条款

C.2.2 第二篇 操作系统

表 C-2-1 第 4 章 进程、线程与写时复制

中文英文全称缩写一句话说明
写时复制copy-on-writeCOWfork 后父子共享只读物理页,谁写谁复制
进程控制块process control blockPCB内核里描述一个任务的全部状态,即 task_struct
轻量级进程light-weight processLWP共享地址空间的调度实体,即内核视角的线程
克隆clone—用 flag 决定共享哪些资源,是 fork 与 pthread_create 的共同底层
vforkvfork—与父进程共享地址空间直到 exec,子进程写会踩坏父进程
派生fork—复制出子进程,配合 COW 才可接受
执行exec—用新程序映像整体替换当前地址空间
僵尸进程zombie process—已退出但父进程未 wait,只剩一条进程表项
孤儿进程orphan process—父进程先退出,被 init 或 systemd 收养
守护进程daemon—脱离控制终端、自成会话的后台进程
双 forkdouble fork—中间进程退出使孙进程被收养,从而不产生僵尸
本地 POSIX 线程库Native POSIX Thread LibraryNPTLglibc 的 1:1 线程实现,无用户态调度器

表 C-2-2 第 5 章 调度与 CPU 虚拟化

中文英文全称缩写一句话说明
完全公平调度器Completely Fair SchedulerCFS用红黑树按虚拟运行时间选下一个任务
虚拟运行时间virtual runtimevruntime实际运行时间按权重缩放后的值,越小越该被调度
权重weight—由 nice 值映射而来,决定 vruntime 的增长速度
友好值nice value—-20 ~ 19,越小优先级越高,相邻档位约差 1.25 倍权重
上下文切换context switch—保存恢复寄存器与栈、切换地址空间,约 1~5 μs
实时调度real-time schedulingSCHED_FIFO / SCHED_RR抢占所有普通任务,分抢占式与轮转式
CPU 亲和CPU affinity—把任务绑定到指定核,换取缓存局部性
负载均衡load balancing—周期性在核间搬运任务,与亲和性天然冲突

表 C-2-3 第 6 章 同步、锁与死锁

中文英文全称缩写一句话说明
竞态条件race condition—结果依赖不可控的执行时序
临界区critical section—必须互斥访问的那段代码
比较并交换compare-and-swapCAS一条原子指令完成"相等则写入",无锁结构的基础
加载链接与条件存储load-linked / store-conditionalLL/SCRISC 架构上的原子原语对,语义比 CAS 更强
自旋锁spinlock—拿不到就空转,适合极短且不睡眠的临界区
互斥锁mutual exclusion lockmutex拿不到就睡眠,适合可能阻塞的临界区
信号量semaphore—计数型同步原语,用 P/V 操作增减许可
条件变量condition variable—在锁的保护下等待某个谓词成立
内存屏障memory barrier—约束编译器与 CPU 的重排序
死锁deadlock—互相持有并等待对方资源,永久阻塞
活锁livelock—都在动但没人前进,如反复退避又反复冲突
饥饿starvation—某个任务长期拿不到资源
优先级反转priority inversion—低优先级持锁,高优先级被中优先级任务插队
无锁lock-free—系统整体上至少有一个线程能取得进展
无等待wait-free—每个线程都能在有限步内完成
读-复制-更新read-copy-updateRCU读者零开销,写者延迟释放旧版本

表 C-2-4 第 7 章 文件描述符、VFS 与 I/O

中文英文全称缩写一句话说明
文件描述符file descriptorfd进程内打开文件表的下标
虚拟文件系统virtual file systemVFS用统一接口抽象 ext4、XFS、procfs、socket
索引节点index nodeinode文件的元数据与数据块位置,不含文件名
目录项directory entrydentry路径分量到 inode 的映射,由 dcache 缓存
超级块superblock—描述整个文件系统的布局与状态
页缓存page cache—按页缓存文件内容,读命中直接返回
直接 I/Odirect I/OO_DIRECT绕过页缓存,需自行对齐与自行缓存
I/O 多路复用I/O multiplexing—一个线程等待多个 fd 就绪
水平触发level-triggeredLT只要还有数据就持续通知
边缘触发edge-triggeredET仅在状态变化时通知一次,必须配非阻塞 fd
零拷贝zero-copy—省掉用户态与内核态之间的数据搬运
内存映射memory mappingmmap把文件或匿名内存映射进地址空间
异步 I/Oasynchronous I/Oio_uring提交后由内核完成并通知,发起方不阻塞等待

表 C-2-5 第 8 章 内存管理

中文英文全称缩写一句话说明
虚拟内存virtual memory—每个进程看到独立且连续的地址空间
分页paging—以固定大小的页为单位做映射
页表page table—多级树状结构,保存虚拟页到物理帧的映射
页表项page table entryPTE一条映射及其权限位,COW 的只读标记就打在它上面
缺页异常page fault—访问未映射页触发,分四种类型
页替换算法page replacement algorithm—OPT、FIFO、LRU、Clock、LFU 的取舍
颠簸thrashing—内存不足导致频繁换页,有效算力暴跌
内部碎片internal fragmentation—分配单位大于请求,浪费在块内部
外部碎片external fragmentation—空闲块零散,凑不出连续的大块
伙伴系统buddy allocator—按 2 的幂分裂与合并物理页框
对象缓存分配器slab allocator—为内核小对象做对象缓存,避免反复初始化
巨大页huge page—2 MB 或 1 GB 的页,减少页表项与 TLB 缺失

表 C-2-6 第 9 章 中断、系统调用与块层

中文英文全称缩写一句话说明
硬中断hardware interrupt—设备触发,顶半部执行,要求极快返回
底半部bottom half—中断处理中延后执行的那部分工作
软中断software interruptsoftirq内核静态注册的延迟工作,可在多核并发执行
小任务tasklet—基于 softirq 的串行化延迟工作
工作队列workqueue—把延迟工作交给内核线程执行,允许睡眠
系统调用system callsyscall用户态请求内核服务的唯一入口
虚拟动态共享对象virtual dynamic shared objectvDSO内核映射到用户态的代码,让部分调用不进内核
信号signal—异步通知机制,处理时机不确定
块层block layer—文件系统与设备驱动之间的通用 I/O 层
I/O 调度器I/O scheduler—合并与排序请求,如 none、mq-deadline、kyber、bfq
直接内存访问direct memory accessDMA设备直接读写内存,不经 CPU 搬运
写回writeback—把脏页异步刷到设备
接收端缩放receive side scalingRSS网卡按流哈希把中断分摊到多核

C.2.3 第三篇 Linux

表 C-3-1 第 10 章 进程、信号与资源限制

中文英文全称缩写一句话说明
平均负载load average—1/5/15 分钟窗口内"可运行 + 不可中断"任务数的均值
不可中断睡眠uninterruptible sleepD 状态等 I/O 或内核锁,不响应任何信号
僵尸态zombieZ 状态已退出、尚未被父进程回收
控制组control groupcgroup对 CPU、内存、IO 做层级化配额与统计
命名空间namespace—隔离 PID、网络、挂载、IPC、UTS、用户与 Cgroup 视图
资源限制resource limitRLIMIT单进程的软硬上限,如 RLIMIT_NOFILE
可打开文件数上限number of open files limitnofileulimit -n,软限制默认 1024
信号处理程序signal handler—注册后在内核返回用户态时被调用
终止信号SIGTERM—请求优雅退出,可被捕获或忽略
强制终止信号SIGKILL—不可捕获、不可忽略,直接回收
子进程状态变化信号SIGCHLD—子进程退出或停止时通知父进程,不处理会产生僵尸

表 C-3-2 第 11、12 章 性能观测、内存与 OOM

中文英文全称缩写一句话说明
可用内存available memory—free 中"不触发交换就能给新进程用"的估算值
缓冲缓存buffer cache—缓存块设备的元数据块,元数据仍走它
脏页dirty page—已被修改、仍在内存、尚未落盘的页
脏页比例dirty ratio—vm.dirty_ratio 与 vm.dirty_background_ratio 控制同步与异步回写
换入与换出swap in / swap outsi/sovmstat 两列,长期非零说明内存真的不够
交换倾向swappiness—vm.swappiness,越大越愿意换出匿名页
内存超售memory overcommit—vm.overcommit_memory 决定能否分配超过物理内存
内存不足杀手out-of-memory killerOOM killer按 oom_score 挑一个进程杀掉以自救
内存溢出评分OOM scoreoom_score由驻留内存与 oom_score_adj 共同决定
常驻内存集resident set sizeRSS实际占用物理内存,含与其他进程共享的页
虚拟内存大小virtual set sizeVSZ地址空间总大小,含尚未分配物理页的部分
比例驻留集proportional set sizePSS共享页按共享进程数平摊后的内存
独占内存unique set sizeUSS仅本进程独占、释放后立即可回收的内存
匿名页anonymous page—无文件背衬的内存,如堆与栈
文件描述符耗尽file descriptor exhaustion—fd 用尽导致 accept 或 open 直接失败

表 C-3-3 第 13 章 文件系统、磁盘与 I/O 排查

中文英文全称缩写一句话说明
第四代扩展文件系统fourth extended filesystemext4通用稳定,写者多时块分配与组描述符易成争用点
XFS 文件系统XFS—按分配组并行修改元数据,大文件与高并发更好
分配组allocation groupAGXFS 内独立管理空闲空间与 inode 的分区
磁盘阵列redundant array of independent disksRAID用镜像或校验换性能与可用性
写惩罚write penalty—RAID 5 随机写约 2 次、RAID 6 约 3 次介质操作
每秒输入输出操作数input/output operations per secondIOPS设备每秒能完成的 I/O 次数
队列深度queue depth—同时在途的 I/O 请求数,决定能否打满设备的 IOPS
条带stripe—数据跨盘分散与并行的单位
校验parity—用校验块换容量,代价是写惩罚与重构风险
不可恢复读错误unrecoverable read errorURE重构整组时遇到一个即整组失效
写洞write hole—掉电留下数据与校验不一致的条带,潜伏到下次掉盘
修剪TRIM—通知 SSD 哪些逻辑块已无效,从而降低写放大
写放大write amplificationWA实际写入闪存的数据量除以主机写入量
垃圾回收garbage collectionGCSSD 控制器搬移有效页后整块擦除
挂载选项mount option—noatime、barrier、discard 等行为开关
索引节点耗尽inode exhaustion—inode 已满,df -i 可见而空间仍有剩余
设备利用率device utilization%utiliostat 的忙碌占比,多并发与 RAID 下不可靠
平均等待时间average waitawait请求从入队到完成的平均耗时,含排队时间

表 C-3-4 第 14 章 命令行与 Shell 速查

中文英文全称缩写一句话说明
文本三剑客grep, sed, awk—行过滤、流编辑、按列聚合
原地替换in-place substitutionsed -i直接改写文件,务必先在副本上验证
端口占用查询port lookupss / lsof查监听与连接对应的进程
快速失败 Shellfail-fast shellset -euo pipefail未定义变量、管道任一环失败即退出
参数批量传递argument batchingxargs把标准输入切成命令行参数,注意含空格的文件名

C.2.4 第四篇 计算机网络

表 C-4-1 第 15 章 体系结构与分层

中文英文全称缩写一句话说明
协议数据单元protocol data unitPDU每层的"包":段、数据报、帧、比特
封装encapsulation—上层报文整体作为下层的载荷
最大传输单元maximum transmission unitMTU链路层载荷上限,以太网通常 1500 字节
最大报文段长度maximum segment sizeMSSTCP 载荷上限,由 MTU 推算得出
分片fragmentation—网络层按 MTU 切分,任一片丢失整个数据报重传
分段segmentation—传输层按 MSS 切分,每段可独立重传
地址解析协议Address Resolution ProtocolARP由 IP 地址求同一网段内的 MAC 地址
网络地址转换Network Address TranslationNAT改写地址,让私网共享公网地址
网络地址端口转换Network Address Port TranslationNAPT同时改写端口,是家用路由器的常见形态
带宽时延积bandwidth-delay productBDPBDP = 带宽 × RTT,决定需要多大的窗口
往返时间round-trip timeRTT一去一回的耗时,是几乎所有超时的基准
长肥管道long fat networkLFN高带宽加大 RTT,对窗口与拥塞控制要求高

表 C-4-2 第 16 章 TCP 连接管理

中文英文全称缩写一句话说明
初始序列号initial sequence numberISN随机选取,防止旧连接的报文被误收
三次握手three-way handshake—SYN、SYN+ACK、ACK,双向确认并交换 ISN
四次挥手four-way termination—TCP 全双工,两个方向各自独立关闭
半连接half-open—一方认为连接已关、另一方仍认为存在
半关闭half-close—一方已发 FIN,仍可继续接收数据
时间等待TIME_WAIT—主动关闭方等 2MSL,保证末次 ACK 到达并清掉残留报文
关闭等待CLOSE_WAIT—收到对端 FIN 但应用未 close,堆积即代码缺陷
最大报文段生存时间maximum segment lifetimeMSL报文在网络中的最长存活时间
SYN 洪水SYN flood—伪造大量源地址以占满半连接队列
SYN CookieSYN cookie—不保存状态,把连接信息编码进 ISN 回显
半连接队列SYN queue—收到 SYN、三次握手尚未完成的连接队列
全连接队列accept queue—握手完成、等待 accept 取走的连接队列
地址重用address reuseSO_REUSEADDR允许绑定处于 TIME_WAIT 的地址
优雅关闭graceful closeSO_LINGER控制 close 是否等待数据发完

表 C-4-3 第 17 章 TCP 可靠传输与拥塞控制

中文英文全称缩写一句话说明
累积确认cumulative acknowledgement—ACK 号表示该序号之前的字节全部收到
选择性确认selective acknowledgementSACK告知已收到的非连续区间,避免整段重传
重传超时retransmission timeoutRTO超时未确认即重传的等待时长
平滑往返时间smoothed round-trip timeSRTTRTT 的指数加权移动平均
往返时间偏差round-trip time variationRTTVARRTT 波动幅度的估计值
Karn 算法Karn’s algorithm—重传过的样本不用于更新 RTT 估计,避免被污染
快速重传fast retransmit—收到三个重复 ACK 立刻重传,不等超时
滑动窗口sliding window—允许连续发送尚未被确认的数据
接收窗口receive windowrwnd接收方缓冲区剩余空间
拥塞窗口congestion windowcwnd发送方估计的网络可承载容量
零窗口探测zero window probe—对端通告窗口为零时周期性试探
糊涂窗口综合征silly window syndromeSWS小窗口与小段互相诱发,有效带宽利用率极低
Nagle 算法Nagle’s algorithm—未确认数据未满 MSS 时先缓存小段再发
延迟确认delayed acknowledgement—等一会再 ACK,可能与 Nagle 互相等待
慢启动slow start—cwnd 从初始窗口指数增长到 ssthresh
拥塞避免congestion avoidance—越过 ssthresh 后改为线性增长
快恢复fast recovery—快重传后不回到慢启动,直接降窗继续
慢启动阈值slow start thresholdssthresh指数与线性增长的分界,丢包时折半
三次函数拥塞控制CUBIC—用三次函数控制窗口增长,Linux 默认算法
瓶颈带宽与往返传播时间Bottleneck Bandwidth and Round-trip propagation timeBBR基于带宽与最小 RTT 建模,不把丢包当拥塞信号
显式拥塞通知Explicit Congestion NotificationECN路由器标记而非丢包,端侧据此降速
窗口扩大因子window scaling—把 16 位窗口字段按比例放大,突破 64 KB
队头阻塞head-of-line blockingHOL前一个报文阻塞后面所有数据的交付

表 C-4-4 第 18 章 HTTP 演进与 HTTPS

中文英文全称缩写一句话说明
管线化pipelining—一次发多个请求,响应仍须按序返回,实践已弃用
二进制分帧binary framing—HTTP/2 把报文切成带类型的帧
多路复用multiplexing—一条连接上并发多个流
头部压缩HPACK header compressionHPACK静态表加动态表再加霍夫曼编码
服务器推送server push—服务端主动推资源,实践中多被弃用
快速 UDP 互联网连接Quick UDP Internet ConnectionsQUIC基于 UDP 的传输层,把可靠性与加密一起下沉
零往返时延zero round-trip time0-RTT会话票据复用,首个请求即带数据,有重放风险
连接迁移connection migration—用连接 ID 而非四元组标识连接,切换网络不断连
传输层安全Transport Layer SecurityTLS握手协商密钥,之后走对称加密
服务器名称指示Server Name IndicationSNI握手明文里带上域名,供服务端选择证书
严格传输安全HTTP Strict Transport SecurityHSTS告诉浏览器此后只用 HTTPS 访问该站点
OCSP 装订OCSP stapling—服务端代取吊销状态并随证书一起下发
证书链certificate chain—站点证书、中间 CA、根 CA 三级信任链
证书颁发机构certificate authorityCA为公钥签名的可信第三方
状态码status code—301/302 是否永久、307/308 是否保持方法

表 C-4-5 第 19 章 DNS、CDN 与网络排障

中文英文全称缩写一句话说明
域名系统Domain Name SystemDNS把域名解析成地址的分布式数据库
递归查询recursive query—让解析器负责问到底并返回最终答案
迭代查询iterative query—被问者只告诉"下一个该问谁"
资源记录resource recordRRA、AAAA、CNAME、MX、TXT、NS 等类型
别名记录canonical nameCNAME把一个域名指向另一个域名
生存时间time to liveTTL记录可被缓存多久,决定切换生效速度
任播anycast—同一地址在多处宣告,路由把用户带到最近点
权威域名服务器authoritative name server—某个域数据的最终来源
内容分发网络content delivery networkCDN就近缓存静态资源,降低源站压力与延迟
回源origin pull—边缘节点未命中时向源站取内容
首字节时间time to first byteTTFB建连、TLS、服务端处理与首包的总和

C.2.5 第五篇 数据库

表 C-5-1 第 20 章 MySQL 架构与存储引擎

中文英文全称缩写一句话说明
连接层connection layer—处理握手、认证、连接池与线程复用
解析器parser—词法与语法分析,生成解析树
优化器optimizer—选择访问路径与连接顺序,可能选错索引
执行器executor—按执行计划调用引擎接口逐行取数
可插拔存储引擎pluggable storage engine—Server 层与引擎层通过 handler 接口解耦
缓冲池buffer pool—缓存数据页与索引页,是内存占用的大头
变更缓冲change buffer—缓存对非唯一二级索引的写,合并后再落盘
自适应哈希索引adaptive hash indexAHI为热点等值查询在缓冲池内建哈希表
表空间tablespace—物理文件的逻辑容器,8.0 默认为每表一个
段segment—表空间内按用途划分的逻辑单元
区extent—连续页的集合,分配与回收的基本单位
页page—InnoDB 最小 I/O 单位,默认 16 KB
行格式row format—COMPACT 与 DYNAMIC 决定溢出页与存储布局
溢出页overflow page—变长列过大时,行内只留前缀与指针
日志缓冲log buffer—redo 落盘前在内存中的暂存区
双写缓冲doublewrite buffer—先顺序写副本再写数据页,防页断裂

表 C-5-2 第 21 章 redo log、undo log 与 binlog

中文英文全称缩写一句话说明
日志先行write-ahead loggingWAL先写日志再写数据页,保证崩溃可恢复
重做日志redo log—物理逻辑日志,记录页的修改,保证持久性
日志序列号log sequence numberLSN单调递增的日志位置,贯穿 redo 与检查点
检查点checkpoint—标记"此前的脏页都已落盘"的位置
组提交group commit—多个事务共用一次 fsync,摊薄刷盘成本
回滚日志undo log—逻辑日志,同时支撑回滚与 MVCC 版本链
清理purge—回收不再被任何读视图需要的旧版本
二进制日志binary logbinlogServer 层逻辑日志,用于复制与时间点恢复
语句格式STATEMENT—记录 SQL 原文,函数与随机值会导致主从不一致
行格式ROW—记录每行的前后镜像,最安全但日志量大
混合格式MIXED—由 Server 判断,可能不安全的语句自动转 ROW
两阶段提交two-phase commit2PCprepare 写 redo、commit 写 binlog,靠 XID 关联
崩溃恢复crash recovery—用 redo 前滚、用 undo 回滚未提交事务
时间点恢复point-in-time recoveryPITR全量备份加重放 binlog 到指定时刻
事务标识transaction identifierXID关联 redo 与 binlog 的同一个事务编号
刷盘策略flush policy—innodb_flush_log_at_trx_commit 的 0、1、2 三档

表 C-5-3 第 22 章 事务、隔离级别与 MVCC

中文英文全称缩写一句话说明
原子性atomicityA靠 undo log 回滚
一致性consistencyC靠约束、触发器与应用逻辑共同保证
隔离性isolationI靠锁与 MVCC 实现
持久性durabilityD靠 redo log 与刷盘保证
隔离级别isolation level—读未提交、读已提交、可重复读、串行化
脏读dirty read—读到别的事务尚未提交的数据
不可重复读non-repeatable read—同一事务内两次读同一行结果不同
幻读phantom read—同一事务内两次范围查询的行数不同
多版本并发控制multi-version concurrency controlMVCC读不加锁,靠版本链与可见性判断
读视图read viewReadView快照读时构造的活跃事务集合
活跃事务列表active transaction listm_ids构造读视图时尚未提交的事务 ID 集合
最小活跃事务标识minimum active transaction idmin_trx_id活跃列表中的最小值
下一个待分配事务标识maximum transaction idmax_trx_id用于判断"事务是否在快照之后才开始"
事务标识transaction idtrx_id每个事务的唯一编号,写进行内隐藏列
回滚指针roll pointerroll_pointer指向 undo 中的上一个版本
版本链version chain—一行的所有历史版本串成的链表
快照读snapshot read—普通 SELECT,走 MVCC 不加锁
当前读current read—读最新版本并加锁,如 FOR UPDATE
长事务long transaction—长时间不提交,撑大 undo 与版本链

表 C-5-4 第 23 章 索引原理与设计

中文英文全称缩写一句话说明
B+ 树B+ tree—只在叶子存数据并串成链表,树高小、范围扫描友好
聚簇索引clustered index—叶子节点即数据行,按主键组织
二级索引secondary index—叶子存主键值,查非索引列需要回表
回表lookup back to clustered index—用二级索引拿到主键,再查聚簇索引取整行
覆盖索引covering index—查询所需列都在索引里,无需回表
最左前缀原则leftmost prefix rule—联合索引按定义顺序逐列匹配才能用上
索引条件下推index condition pushdownICP把 WHERE 条件下推到引擎层过滤,减少回表次数
索引选择性index selectivity—不同值数除以总行数,越高越适合建索引
基数cardinality—索引列不同值的统计数量,供优化器估算
前缀索引prefix index—只索引长字符串的前若干字符
联合索引composite index—多列组成一个索引,列顺序即最左前缀顺序
文件排序filesort—无法利用索引有序性时额外做一次排序

表 C-5-5 第 24 章 锁、加锁规则与死锁

中文英文全称缩写一句话说明
全局读锁global read lockFTWRLFLUSH TABLES WITH READ LOCK,整库只读
表级锁table-level lock—锁整张表,粒度大、并发低
元数据锁metadata lockMDL保护表结构,DML 持读锁、DDL 需写锁
意向锁intention lockIS / IX表级标记"表内已有行锁",避免逐行检查
记录锁record lock—锁住索引上的一条记录
间隙锁gap lock—锁住两条记录之间的开区间,阻止插入
临键锁next-key lock—记录锁加前面的间隙,是 InnoDB 默认加锁单位
插入意向锁insert intention lock—插入前的特殊间隙锁,间隙不同则可并发插入
隐式锁implicit lock—新插入的行不加锁,被别的事务读写时再补
在线 DDLonline DDL—建新表加双写加增量同步再切换,减少阻塞
死锁检测deadlock detection—主动检查等待图,回滚代价较小的事务
悲观锁pessimistic locking—先加锁再操作,冲突多时更稳
乐观锁optimistic locking—用版本号或条件更新检测冲突,冲突少时更轻
锁等待超时lock wait timeout—innodb_lock_wait_timeout 默认 50 s

表 C-5-6 第 25 章 SQL 优化与执行计划

中文英文全称缩写一句话说明
执行计划execution planEXPLAIN优化器给出的访问路径与代价估算
访问类型access typetype从 const 到 ALL 逐级变差
索引使用长度key lengthkey_len推算联合索引实际用到了几列
预估扫描行数estimated rowsrows统计信息推算值,可能与真实值差数量级
过滤比例filtered—该步条件过滤后剩余行数的占比
额外信息Extra—Using index、Using filesort、Using temporary
慢查询日志slow query log—记录超过 long_query_time 的语句
深分页deep pagination—偏移量很大时扫描大量无用行
派生表derived table—子查询被物化成临时表
半连接semi-join—IN 与 EXISTS 的优化改写,一行最多匹配一次
块嵌套循环block nested loopBNL把驱动表批量装入连接缓冲,减少被驱动表扫描
哈希连接hash join—8.0.18 起用于等值连接,替代块嵌套循环
嵌套循环连接nested loop joinNLJ用小表驱动大表,逐行匹配
驱动表driving table—外层循环的表,应选过滤后更小的那个

表 C-5-7 第 26 章 复制、高可用与分库分表

中文英文全称缩写一句话说明
异步复制asynchronous replication—主库提交即返回,主库宕机可能丢数据
半同步复制semi-synchronous replication—至少一个从库确认收到 binlog 才返回
组复制group replication—基于多数派一致性协议的复制
中继日志relay log—从库 IO 线程落盘、SQL 线程重放的中转日志
复制线程replication threads—主库 dump 线程与从库 IO、SQL 线程
全局事务标识global transaction identifierGTID全局唯一的事务编号,简化切换与断点定位
写集合WRITESET—按行级写集合做并行复制,真冲突才串行
主从延迟replication lag—从库重放落后主库的量
主从延迟秒数seconds behind master—由事件时间戳估算,空闲或大事务时不准
并行复制parallel replicationMTS从库多线程重放,按组提交或 WRITESET 划分
脑裂split-brain—两个节点都认为自己是主,同时接受写入
故障转移failover—选主、改路由、补齐差异数据
一致性哈希consistent hashing—扩缩容时只迁移相邻区间
虚拟节点virtual nodevnode一个物理节点映射成多个环上位置,改善均衡
分库分表sharding—按规则把数据拆到多个库与多张表
XA 事务XA transactionXA跨库事务的 prepare 加 commit 两阶段
补偿事务compensating transactionTCCTry、Confirm、Cancel,由业务层自己实现回滚

表 C-5-8 第 27 章 Redis 原理与缓存架构

中文英文全称缩写一句话说明
简单动态字符串simple dynamic stringSDS带长度与预分配,二进制安全、追加不频繁扩容
压缩列表ziplist—连续内存的紧凑编码,元素多或值大时触发转换
紧凑列表listpack—解决压缩列表连锁更新问题的后继编码
快速列表quicklist—双向链表加每个节点一个紧凑列表
整数集合intset—纯整数集合的有序紧凑编码
跳表skiplist—多层索引实现的有序集合,范围查询优于平衡树
哈希表hashtable—字典的通用实现,配合渐进式 rehash
渐进式 rehashincremental rehashing—分多次把旧表迁到新表,避免单次长停顿
惰性删除lazy expiration—访问到过期键时才删除
定期删除periodic expiration—周期性抽样扫描并删除过期键
淘汰策略eviction policy—noeviction、allkeys-lru、volatile-lfu 等八种
最近最少使用least recently usedLRU按最后一次访问时间淘汰
最不经常使用least frequently usedLFU按访问频次淘汰,抗扫描能力更强
快照持久化Redis DatabaseRDB周期性把全量数据写成二进制快照
追加日志Append Only FileAOF记录写命令,按策略决定何时 fsync
AOF 重写AOF rewrite—用等价的最小命令集重写文件
混合持久化hybrid persistence—前半段 RDB 全量加后半段 AOF 增量
刷盘策略fsync policy—always、everysec、no 三档
部分重同步partial resynchronizationpsync用复制偏移与积压缓冲只补差量
复制积压缓冲replication backlog—固定大小的环形缓冲,太小会触发全量重同步
全量重同步full resynchronization—主库生成 RDB 并传输,期间缓存增量命令
哨兵Sentinel—监控、通知、故障转移、配置提供者四项职责
集群Redis Cluster—16384 个槽分片,客户端按 MOVED 与 ASK 重定向
哈希标签hash tag—用大括号强制多个键落同一槽,才能做多键操作
缓存穿透cache penetration—查询不存在的数据,缓存与数据库都要扛压
缓存击穿cache breakdown—热点键过期的瞬间大量请求打到数据库
缓存雪崩cache avalanche—大量键同时失效,数据库被击穿
布隆过滤器Bloom filter—用位数组判断"一定不存在",存在假阳性
延迟双删delayed double delete—更新后删缓存,隔一段时间再删一次
热键hot key—单键流量过高,需要本地缓存或拆分
大键big key—单键体积过大,操作会阻塞单线程
分布式锁distributed lockRedlock多节点多数派加锁,争议在于依赖时钟假设

C.2.6 第六篇 Java、JVM 与并发

表 C-6-1 第 28 章 Java 语言与对象模型

中文英文全称缩写一句话说明
对象头object header—标记字加类型指针,数组还多一个长度字段
标记字Mark Word—存哈希码、GC 年龄与锁状态,随锁升级被复用
类型指针klass pointer—指向方法区中的类元数据
压缩指针compressed oops—堆小于 32 GB 时用 32 位偏移表示引用
字符串常量池string constant pool—存放字面量与 intern 结果的引用
自动装箱缓存autoboxing cache—Integer 缓存 -128 ~ 127,超出范围需用 equals
泛型擦除type erasure—编译期检查、运行期只剩上界类型
桥接方法bridge method—编译器合成的转发方法,保证擦除后多态仍正确
动态代理dynamic proxy—运行时生成代理类,JDK 版基于接口
代码生成库Code Generation LibraryCGLIB通过继承生成子类代理,无法代理 final 类
序列化版本号serial version UIDserialVersionUID显式声明可避免类结构微调导致反序列化失败
方法句柄method handle—动态调用的调用目标,比反射更容易被内联

表 C-6-2 第 29 章 集合框架原理

中文英文全称缩写一句话说明
快速失败fail-fast—迭代中检测到结构修改立即抛异常
安全失败fail-safe—在副本上迭代,不抛异常但可能读到旧数据
负载因子load factor—HashMap 默认 0.75,容量与冲突的折中
树化阈值treeify threshold—桶内链表长度达 8 且容量不小于 64 时转红黑树
退化阈值untreeify threshold—扩容或删除后长度降到 6 时退回链表
扩容resize—容量翻倍,用 hash & oldCap 判断高低位拆分
哈希扰动hash spreading—高 16 位异或低 16 位,改善低位分布
分段锁segment lock—ConcurrentHashMap 的早期实现,1.8 改为 CAS 加 synchronized
写时复制列表copy-on-write listCOW写时复制整个数组,适合读多写极少的场景
红黑树red-black tree—近似平衡的二叉搜索树,TreeMap 的底层
比较器契约comparator contract—必须满足自反与传递,否则排序抛异常

表 C-6-3 第 30 章 JMM、volatile 与 synchronized

中文英文全称缩写一句话说明
Java 内存模型Java Memory ModelJMM规定多线程读写共享变量的可见性与有序性
先行发生原则happens-before—八条规则,判断一次写是否对另一个线程可见
重排序reordering—编译器、CPU、内存系统三层都可能调整顺序
好似串行as-if-serial—单线程语义不能被重排序破坏
可见性与有序性visibility and ordering—一个线程的写能被别人读到,且顺序符合预期
内存屏障memory barrier—LoadLoad、StoreStore、LoadStore、StoreLoad 四种
StoreLoad 屏障StoreLoad barrier—最贵的一种,volatile 写之后必须插入
volatile 关键字volatile—保证可见性与禁止重排序,但不保证原子性
双重检查锁定double-checked lockingDCL必须给实例字段加 volatile,否则可能发布半初始化对象
监视器进入monitorenter—synchronized 块的字节码入口
监视器退出monitorexit—正常与异常路径各一个,保证锁一定被释放
偏向锁biased locking—同一线程重复进入时零原子操作,后续 JDK 已默认禁用
轻量级锁与重量级锁lightweight lock / heavyweight lock—前者用 CAS 自旋,后者挂起线程依赖内核互斥量
锁膨胀lock inflation—偏向、轻量、重量级的单向升级路径
自适应自旋adaptive spinning—按上次自旋成功率决定这次的次数
对象监视器ObjectMonitor—HotSpot 中重量级锁的落地结构
线程本地映射ThreadLocalMap—每个线程私有的键值表,键为弱引用
内存泄漏memory leak—对象不再使用却仍被引用,无法回收

表 C-6-4 第 31 章 并发工具、线程池与 AQS

中文英文全称缩写一句话说明
抽象队列同步器AbstractQueuedSynchronizerAQS用一个状态变量加双向等待队列实现同步器
同步状态synchronization statestate语义由子类定义,如重入次数或许可数
CLH 队列Craig, Landin and Hagersten queueCLHFIFO 双向队列,是 AQS 的排队基础
等待状态waitStatus—节点标记:取消、唤醒、条件等待、传播
独占与共享模式exclusive / shared mode—前者同一时刻只允许一个线程持有,后者允许多个
条件队列condition queue—单向队列,await 在此等待、signal 把它转回同步队列
公平与非公平锁fair / unfair lock—前者严格按队列顺序,后者允许新线程先抢一次
时间戳锁StampedLock—乐观读加悲观读写,不支持重入
倒计数闩CountDownLatch—一次性,等 N 个事件发生
循环屏障CyclicBarrier—可重用,等 N 个线程到齐后一起继续
信号量Semaphore—控制同时访问某资源的线程数
异步编排CompletableFuture—组合多个异步任务并统一处理异常
工作窃取work stealing—空闲线程从别人队列尾部取任务
分段累加器LongAdder—分散到多个计数单元再求和,高并发计数更快
核心与最大线程数core pool size / maximum pool size—前者决定何时入队,后者决定队列满后是否扩容
工作队列work queue—核心线程满后任务入队,队列类型决定整体行为
拒绝策略rejection policy—抛异常、调用者执行、丢弃、丢弃最旧四种
背压backpressure—上游按下游处理能力主动降速
线程本地分配缓冲thread-local allocation bufferTLAB线程私有的堆分配区域,免加锁

表 C-6-5 第 32 章 JVM 内存结构与 GC

中文英文全称缩写一句话说明
逃逸分析escape analysis—判断对象是否逃出方法,未逃逸可栈上分配
标量替换scalar replacement—把未逃逸对象拆成若干局部标量
可达性分析reachability analysis—从根集合出发标记可达对象,不可达即可回收
GC 根集合GC Roots—栈引用、静态字段、常量、JNI 引用等起点
强引用与软引用strong reference / soft reference—前者绝不回收,后者内存紧张时回收
弱引用与虚引用weak reference / phantom reference—前者下次 GC 必回收,后者仅用于回收通知
标记清除与复制与整理mark-sweep / mark-copy / mark-compact—三种基础算法,分别对应碎片、空间浪费、移动成本
卡表card table—记录跨代引用的粗粒度位图,避免扫描整个老年代
新生代回收minor GC—只回收年轻代的垃圾收集
对象晋升promotion—存活够久的对象从幸存区进入老年代
动态年龄判定dynamic age determination—同年龄对象总和超过幸存区一半即提前晋升
空间分配担保space allocation guarantee—老年代需为新生代晋升预留空间
三色标记法tri-color marking—白灰黑三色描述标记进度,漏标需两个条件同时成立
增量更新incremental update—破坏"删除引用"条件,记录新增引用,CMS 采用
原始快照snapshot-at-the-beginningSATB破坏"插入引用"条件,记录被删的旧引用,G1 采用
写屏障write barrier—在引用赋值处插入的钩子,配合记忆集与 SATB
并发模式失败Concurrent Mode Failure—老年代在并发回收期间被填满,退化为串行回收
垃圾优先收集器Garbage-First collectorG1按区域回收价值排序,可设停顿目标
区域Region—G1 把堆切成等大小区域并动态扮演各分代
记忆集Remembered SetRSet记录指向本区域的跨区域引用,避免全堆扫描
混合回收Mixed GC—回收全部年轻代区域加部分高收益老年代区域
Z 垃圾收集器Z Garbage CollectorZGC着色指针加读屏障,目标是把停顿压到毫秒级
着色指针colored pointer—把标记信息编码进指针本身,省去对象头访问
读屏障load barrier—读取引用时修正指针颜色
安全点safepoint—线程可被暂停的少数位置,GC 需先到达它

C.2.7 第七篇 消息队列、分布式与微服务

表 C-7-1 第 33 章 消息队列:可靠性三件套

中文英文全称缩写一句话说明
解耦decoupling—生产与消费互不知晓,各自独立演进
削峰填谷peak shaving—用队列吸收突发流量,保护下游
至少一次at-least-once—不丢但可能重复,绝大多数系统的默认语义
至多一次at-most-once—不重但可能丢,用可靠性换吞吐
恰好一次exactly-once—端到端严格一次,代价是事务与去重开销
幂等性idempotence—同一操作执行多次与执行一次效果相同
去重表deduplication table—用唯一键记录已处理消息,重复直接丢弃
死信队列dead letter queueDLQ超过重试次数的消息转入此处并告警
消费延迟consumer lag—最新生产位点与已提交位点之差
再均衡rebalance—消费者组内重新分配分区,期间会短暂停顿
同步副本集合in-sync replicasISR与领导者保持同步的副本集合
高水位high watermarkHW已同步到足够副本、可被消费者读取的位点
日志末端偏移log end offsetLEO副本本地日志的末端位置
领导者纪元leader epoch—领导者变更代数,用于识别过期副本数据
非干净领导者选举unclean leader election—允许未同步副本当领导者,会丢数据但保可用
延迟消息delayed message—到指定时间才可被消费的消息
时间轮timing wheel—用环形数组加槽位链表实现的高效定时结构
事务消息transactional message—两阶段提交,保证本地事务与消息发送一致
半消息half message—已存储但对消费者不可见的中间态消息

表 C-7-2 第 34 章 分布式理论:CAP、共识与一致性

中文英文全称缩写一句话说明
一致性、可用性与分区容错Consistency, Availability, Partition toleranceCAP分区发生时只能在一致与可用之间取舍
基本可用、柔性状态与最终一致Basically Available, Soft state, Eventually consistentBASE对 CAP 中 AP 的工程化落地
分区时选一致或可用、否则选延迟或一致Partition, Availability, Consistency, Else Latency, ConsistencyPACELC把"无分区时仍要权衡延迟与一致"补上
线性一致性linearizability—所有操作看起来在某个全局时间点上原子生效
顺序一致性sequential consistency—存在一个全局顺序,且每人的本地顺序被保留
因果一致性causal consistency—只保证有因果关系的操作顺序
最终一致性eventual consistency—停止写入后最终收敛到一致
任期term—Raft 的逻辑时钟,每轮选举自增
选举超时election timeout—超过它没收到心跳就发起选举
日志复制log replication—领导者把日志条目并行发给跟随者
提交索引commitIndex—已被多数派确认、可安全应用的日志位置
Raft 共识算法Raft—以可理解性为设计目标,拆分选举、复制、安全三块
Paxos 共识算法Paxos—更早的共识算法,描述简单实现难
ZooKeeper 原子广播协议ZooKeeper Atomic BroadcastZAB主备模式的原子广播,保证顺序与崩溃恢复
两阶段提交two-phase commit2PC先都 prepare、再统一 commit,协调者单点
三阶段提交three-phase commit3PC插入 canCommit 减轻阻塞,仍未解决脑裂
补偿事务Try-Confirm-CancelTCC业务层实现预留、确认与取消三个接口
长事务补偿Saga—把长事务拆成多步,失败时反向补偿
本地消息表local message table—业务与消息记录写同一本地事务,再异步投递
最大努力通知best-effort notification—反复通知加对账兜底,不保证必达
雪花算法Snowflake—时间戳加机器号加序列号生成有序唯一 ID
时钟回拨clock skew—机器时间倒退导致 ID 重复或乱序
隔离令牌fencing token—单调递增的令牌,让旧持有者无法再写
令牌桶token bucket—按固定速率放令牌,允许突发到桶容量
漏桶leaky bucket—恒定速率流出,专门削平突发
滑动窗口限流sliding window—用两个计数器按时间比例加权,避免临界突变
虚拟节点virtual nodevnode一个物理节点映射到环上多个位置,改善均衡与迁移粒度

表 C-7-3 第 35 章 微服务架构与治理

中文英文全称缩写一句话说明
服务发现service discovery—让调用方找到当前可用的实例地址
客户端发现与服务端发现client-side / server-side discovery—前者调用方自己选实例,后者由负载均衡器代选
自我保护self-preservation—心跳丢失比例过高时暂停剔除,防止误杀
熔断器circuit breaker—失败率超阈值即快速失败,避免雪崩
半开状态half-open—放过少量试探请求,成功则闭合、失败则继续断开
舱壁隔离bulkhead—按依赖划分资源池,一个故障不拖垮全部
线程池隔离与信号量隔离thread pool / semaphore isolation—前者异步且可超时,后者轻量但无法中断
优雅降级graceful degradation—关闭非核心功能保住核心链路
重试放大retry amplification—多层重试相乘,故障时流量成倍砸向下游
抖动退避jitter—在退避时间上加随机量,避免同时重试
分布式追踪distributed tracing—用跨进程标识串起一次请求的所有调用
追踪标识TraceID—一次请求全链路唯一标识
跨度标识SpanID—单个调用段的标识,父子关系构成调用树
采样sampling—只记录部分请求的链路,控制存储与开销
灰度发布canary release—先放量给小部分用户验证
蓝绿部署blue-green deployment—两套环境切流量,回滚只需切回
接口网关API gateway—统一入口,承担路由、鉴权、限流与协议转换

C.2.8 第八篇 场景设计与面试复盘

表 C-8-1 第 36 章 场景设计题的答题框架

中文英文全称缩写一句话说明
需求澄清requirement clarification—先问清读多还是写多、一致性要求、允许的延迟
容量估算capacity estimation—由日活与人均请求推出 QPS、存储与带宽
每秒查询数queries per secondQPS读侧吞吐的核心指标
每秒事务数transactions per secondTPS写侧或完整业务事务的吞吐
峰值系数peak factor—峰值流量与均值流量的倍数,用于定容量
扇出fan-out—一次请求扩散成的下游请求数
写放大write amplification—一次业务写引发的总写入次数或数据量
热点hot spot—访问集中在少数分片或键上
库存扣减stock deduction—用原子操作或状态机把"判断加扣减"变成一步
超卖overselling—并发扣减未互斥,卖出超过库存的量
限流rate limiting—在入口按维度限制请求速率
推模式与拉模式push / pull model—写时扩散与读时聚合,分别适合不同活跃度
信息流feed—关注关系下的内容聚合流
排名与榜单ranking—用有序集合做实时排行与分页

C.3 只给缩写的高频缩写速查

这一节为"面试官只说缩写"的场景准备:不按篇章、只按字母序,一行一个缩写。看到不认识的缩写时先在这里定位,再回 C.2 取它所在篇章的上下文。

警告

同一缩写在书中有两个意思:GC 既指垃圾回收机制也指垃圾收集器;RSS 在内存章节是常驻内存集(resident set size)、在网络章节是接收端缩放(receive side scaling);HW 在 MQ 章节是高水位(high watermark)而非硬件。听到缩写后先用上下文确认所指再回答——直接答错意思比不知道更伤。

表 C-3 高频缩写速查(按字母序)

缩写英文全称中文一句话提示
AOFAppend Only File追加日志Redis 的写命令日志,everysec 是默认刷盘档
AQSAbstractQueuedSynchronizer抽象队列同步器一个状态变量加一条 CLH 变体队列
ARPAddress Resolution Protocol地址解析协议同网段内由 IP 求 MAC
BDPbandwidth-delay product带宽时延积带宽 × RTT,决定窗口该开多大
CAPConsistency, Availability, Partition tolerance一致性、可用性、分区容错分区发生时只能二选一,不是"三选二"
CAScompare-and-swap比较并交换一条指令完成比较与写入,无锁结构的基础
CDNcontent delivery network内容分发网络边缘缓存,关键指标是回源率与命中率
CFSCompletely Fair Scheduler完全公平调度器按 vruntime 用红黑树选下一个任务
CLHCraig, Landin and Hagersten queueCLH 队列AQS 排队所用的 FIFO 双向队列
COWcopy-on-write写时复制fork 与写时复制集合同名但机制不同
DCLdouble-checked locking双重检查锁定单例的实例字段必须加 volatile
DLQdead letter queue死信队列超过重试次数的兜底去处,不等于丢弃
DMAdirect memory access直接内存访问设备直读内存,是零拷贝的关键角色
DNSDomain Name System域名系统递归查询与迭代查询不要混
G1Garbage-First collector垃圾优先收集器Region 加记忆集加原始快照
GCgarbage collection垃圾回收也常指垃圾收集器,看上下文
GTIDglobal transaction identifier全局事务标识复制不必记位点,切换更简单
HOLhead-of-line blocking队头阻塞HTTP/1.1 在应用层,HTTP/2 在 TCP 层
HPACKHPACK header compression头部压缩静态表加动态表加霍夫曼编码
HSTSHTTP Strict Transport Security严格传输安全响应头让浏览器此后只走 HTTPS
HWhigh watermark高水位Kafka 中可被消费者读到的最低位点
ICPindex condition pushdown索引条件下推条件下推到引擎层,减少回表
IOPSinput/output operations per second每秒输入输出操作数必须与队列深度一起看
ISRin-sync replicas同步副本集合与领导者保持同步的副本集合
JITjust-in-time compiler即时编译器热点方法从解释执行转为机器码
JMMJava Memory ModelJava 内存模型happens-before 是判断可见性的依据
LEOlog end offset日志末端偏移副本本地日志的末端位置
LSNlog sequence number日志序列号redo 与检查点共用的坐标
LWPlight-weight process轻量级进程内核视角的线程
MDLmetadata lock元数据锁DDL 与 DML 互相等待的常见元凶
MESIModified-Exclusive-Shared-Invalid protocol缓存一致性协议四种状态描述缓存行的归属
MMUmemory management unit内存管理单元做地址翻译,内含 TLB
MSSmaximum segment size最大报文段长度TCP 载荷上限,由 MTU 推算
MTUmaximum transmission unit最大传输单元链路层载荷上限,以太网常见 1500 字节
MVCCmulti-version concurrency control多版本并发控制读不加锁,靠版本链与读视图
NAPTNetwork Address Port Translation网络地址端口转换同时改写地址与端口
NATNetwork Address Translation网络地址转换让私网共享公网地址
OOMout of memory内存耗尽内核侧是 OOM killer,JVM 侧是 OOM 异常
P9999th percentile第 99 百分位尾延迟指标,比均值更能暴露问题
PACELCPartition, Availability, Consistency, Else Latency, ConsistencyCAP 的补充模型无分区时仍要在延迟与一致之间权衡
PITRpoint-in-time recovery时间点恢复全量备份加重放 binlog 到指定时刻
PSSproportional set size比例驻留集共享页按参与进程数平摊
QPSqueries per second每秒查询数容量估算的读侧口径
QUICQUIC快速 UDP 互联网连接基于 UDP,0-RTT 与连接迁移
RAIDredundant array of independent disks磁盘阵列关注写惩罚与重构风险
RDBRedis Database快照持久化周期性生成的全量二进制快照
REDrate, errors, durationRED 方法服务视角三问:速率、错误、耗时
RSSresident set size / receive side scaling常驻内存集 / 接收端缩放同名两义:内存指标与网卡多队列
RTOretransmission timeout重传超时由 SRTT 与 RTTVAR 算出
RTTround-trip time往返时间几乎所有超时与窗口的基准
RTTVARround-trip time variation往返时间偏差RTT 波动幅度的估计值
SATBsnapshot-at-the-beginning原始快照G1 用写前屏障记录被删除的引用
SDSsimple dynamic string简单动态字符串Redis 字符串的底层编码
SLAservice-level agreement服务等级协议对外承诺,附带违约后果
SLOservice-level objective服务等级目标内部目标值,通常严于 SLA
SNIServer Name Indication服务器名称指示握手明文带域名,一个 IP 配多证书的前提
SRTTsmoothed round-trip time平滑往返时间RTT 的指数加权移动平均
TCCTry-Confirm-Cancel补偿事务业务层自己写预留、确认与取消
TLABthread-local allocation buffer线程本地分配缓冲线程私有的堆分配区域,免加锁
TLSTransport Layer Security传输层安全握手协商密钥,之后走对称加密
TPStransactions per second每秒事务数容量估算的写侧口径
TTFBtime to first byte首字节时间建连、TLS 与服务端处理的总和
USEutilization, saturation, errorsUSE 方法资源视角三问:使用率、饱和度、错误
USSunique set size独占内存仅本进程独占、释放后立即可回收
VFSvirtual file system虚拟文件系统用统一接口抽象文件、socket 与 procfs
WALwrite-ahead logging日志先行先写日志再写数据页,崩溃可恢复
ZGCZ Garbage CollectorZ 垃圾收集器着色指针加读屏障,停顿压到毫秒级

C.4 容易混淆的术语对

这一节收"中文看着像、意思完全不同"与"经常被混用"的术语。每组只给一句话区别,但都是面试官用来区分"背过"和"懂了"的那一句。

重要

被混用的术语往往对应同一道题的两种答法:说错一个词,整段推理就站不住。进场前把这张表朗读一遍,比再背十道新题有效。

表 C-4 易混术语对照(25 组)

易混术语对核心区别常见错误
buff/cachebuff 缓存块设备的元数据块,cache 按页缓存文件内容把两者当成同一份内存,说不清各自的回收顺序
VSZ/RSSVSZ 是地址空间总大小,RSS 是实际占用的物理内存看到 VSZ 很大就判定内存泄漏
软链接/硬链接软链接是独立文件存路径,硬链接是同一 inode 的另一个名字说硬链接不能跨目录却不说不能跨文件系统
SIGTERM/SIGKILL前者请求退出且可被捕获忽略,后者不可捕获直接回收认为 kill -9 一定能杀掉进程(D 状态杀不掉)
select/poll/epoll前两者每次调用都要把整个集合拷进内核并线性扫描只说"epoll 更快"却说不出红黑树与就绪链表
LT/ETLT 只要有数据就持续通知,ET 只在状态变化时通知一次用 ET 却不把 fd 设为非阻塞,导致只读到一次
page cache/buffer cache前者缓存文件内容页,后者缓存块设备元数据在 free 里把两者相加却不解释各自能否直接回收
脏页/换页脏页是改了还没落盘的内存页,换页是匿名页在内存与 swap 之间搬把脏页回写说成"换出到 swap"
swap/内存回收swap 只针对匿名页且要写设备,回收 page cache 直接丢弃即可认为只有 swap 用完才会回收 page cache
RDB/AOFRDB 是全量二进制快照,AOF 是写命令日志说 AOF 一定不丢数据(everysec 会丢 1 秒)
缓存穿透/击穿/雪崩穿透是查不存在的数据,击穿是单个热点键失效,雪崩是大量键同时失效三个词互换使用,方案也不对应
ReadView/快照读视图是可见性判断的依据,快照是它带来的"看不到新提交"的效果把 RC 与 RR 的差异说成"快照大小不同"
快照读/当前读快照读走 MVCC 不加锁,当前读读最新版本并加锁把 SELECT ... FOR UPDATE 当成快照读
间隙锁/临键锁间隙锁只锁开区间,临键锁是记录锁加前面的间隙说唯一索引等值命中时也会加临键锁
redo/undoredo 保证已提交的不丢(前滚),undo 保证未提交的能回退(回滚)把 undo 说成 binlog 的一种
binlog/redo logbinlog 是 Server 层逻辑日志(用于复制与归档),redo 是引擎层物理日志说 binlog 用于崩溃恢复
equals/hashCodeequals 判等、hashCode 定位桶,两者必须保持一致重写 equals 不重写 hashCode,放进 HashMap 就找不到
volatile/synchronized前者保证可见性与有序性,后者还保证原子性与互斥用 volatile 修饰 i++ 以为线程安全
偏向锁/轻量级锁偏向锁是同一线程重入零开销,轻量级锁用 CAS 自旋竞争说轻量级锁竞争激烈时会升级为偏向锁
CountDownLatch/CyclicBarrier前者一次性、等事件;后者可重用、等线程到齐说 CyclicBarrier 可以减计数并多次复用
2PC/TCC2PC 靠数据库的 prepare 与 commit,TCC 靠业务层写三个接口说 TCC 不需要处理空回滚与悬挂
CAP/BASECAP 是分区时的取舍结论,BASE 是对 AP 的工程化落地把 BASE 说成 CAP 的替代而不是补充
限流/熔断限流按入口速率做保护,熔断按下游失败率做快速失败说熔断会减少流量,其实它只是拒绝调用
推/拉推在写时扩散到收件箱,拉在读时聚合,按活跃度与实时性取舍只说"推快拉慢",说不出大 V 扇出的代价
软引用/弱引用软引用内存紧张时才回收,弱引用下次 GC 必回收用软引用做缓存却指望它一定活到进程结束