TinyKV / TiKV / MIT 6.824 面经索引

来源:本地 interview-experiences/tinykv-tikv-6.824-mianshi.md,更新口径是 2026-06-01。

TinyKV 面经问题按 Lab 反查
面经不要只按公司看,更要按系统层次拆:存储、复制、分片、事务、工程外延。

我把最近两年和 TinyKV、TiKV、MIT 6.824/6.5840 相关的面经单独拎出来了。牛客和个人博客权重最高,因为它们通常会记录逐轮问题;问答站和路线帖可以看,但不适合作为主证据。

看这张表的时候,重点不是背公司名字,而是找追问模式:Raft 会追异常场景,事务会追 Percolator 和锁清理,存储引擎会追 LSM/Badger,TinyKV 项目会追你到底改过哪些模块。

筛选口径

  • 主来源:牛客逐轮面经、个人博客/技术博客复盘。
  • 暂不把 AskTUG 放入主表;它更像问答/题库,面经价值偏弱。
  • 权重规则:2025/2024 且逐题记录为高权重;2023 及以前、博客复盘、路线类文章为中低权重。
  • 关键词范围:TinyKV、TiKV、MIT 6.824、MIT 6.5840、Raft、Percolator、LSM、数据库内核、分布式存储。

高权重:近两年逐题面经

权重 时间 来源 公司/岗位 类型 重点问题 链接
2025-09-07 牛客 百度秋招提前批 C++ 后端二面 校招提前批 Percolator vs 单体数据库事务、Raft 全流程、ACID/CAP、CMU 15445 隔离级别、LRU-K、crabbing、线程安全 LRU、KV 场景题 百度秋招提前批 C++ 后端二面
2025-08-07 牛客 百度后端开发三面 校招提前批 分布式唯一 ID、分布式事务、2PC、Percolator、Raft 小问题、OceanBase 比赛经历 百度提前批后端三面
2025-08-01 牛客 腾讯 TEG DB 内核开发二面 校招/提前批倾向 TinyKV 优化点、BadgerDB、LSM Tree、LSM vs B+Tree、Hash 冲突、并发 HashMap、mmap 持久化崩溃恢复、手写 HashMap 腾讯 TEG DB 内核开发二面
2025-07-23 牛客 百度提前批二面 校招提前批 CMU 15445 + TinyKV、Multi-Raft 必要性、Percolator、Raft 选举/日志复制、脑裂、PreVote、Leader Lease、ReadIndex、广告日志 KV 场景题 百度提前批二面
2025-04-24 牛客 字节客服平台一面 未明确,偏实习/春招 Raft、Percolator、Multi-Raft、MVCC、事务隔离级别、多数据中心、过期时间 LRU、redo/undo log 字节客服平台一面
2025-03 左右 牛客 TikTok 直播后端开发 实习 TiKV 成熟产品案例、LSM Tree、Raft、CAP、一致性模型、ReadIndex、Lease Read、Leader Lease、Bloom Filter、KV 分离 TikTok 直播后端实习三轮技术面
2024-03-26 牛客 腾讯 WXG 后台开发 实习 Raft 如何保证一致性、Raft 存储实现、性能测试、脑裂恢复、日志选举、LevelDB、MVCC、KV 存储设计 腾讯实习基地 WXG 后台开发
2024-03 牛客 腾讯日常实习一面 日常实习 MIT 6.824 Raft、Leader 宕机、选举冲突、Redis 持久化、IO 多路复用、Go 使用 腾讯日常实习一面

中权重:稍早但问题密度高

权重 时间 来源 公司/岗位 类型 重点问题 链接
2023-08 牛客 字节基架 校招提前批 TinyKV 中 Raft/Percolator、PreVote、ReadIndex、LeaseRead、FollowerRead、GMP、K8s、redo log 复制 两周盘下字节基架校招 Offer
2023-03/04 牛客 腾讯 IEG 游戏数据科学后端 暑期实习 Raft KV-Store、Snapshot 持久化和一致性、边写 Snapshot 边服务、解释 Raft、MIT 6.824 是什么、select/epoll、Spinlock vs Mutex 腾讯 IEG 暑期实习面经
2022 秋招 牛客 美团/百度/StarRocks/蚂蚁等数据库内核 校招 TinyKV 生产化问题、Percolator 性能、Raft 成员变更、LevelDB、LSM、B+Tree、OceanBase 架构 2022 年秋招后端数据库内核面经
2022-09 个人博客 RisingWave Labs Database Kernel Rust 实习 TiKV 扩容、Region 分裂、Raft Group 迁移、Snapshot、LSM/LevelDB、Bloom Filter、Bitcask、HashMap resize RisingWave Labs 实习面试

低权重:路线和旧资料参考

权重 时间 来源 公司/方向 类型 参考价值 链接
2022-09 个人博客 23 届数据库/存储秋招 校招复盘 阿里云、字节、百度、小红书、StarRocks、SelectDB 等数据库/存储方向整体风格;推荐 MIT 6.824/TinyKV 23 届小硕秋招分享:数据库/存储方向
2022-03 个人博客 数据库内核求职路线 校招/春招复盘 6.824 -> TinyKV -> CMU 15-445 路线;高频题包括 PreVote、ReadIndex、LeaseRead、Raft 持久化、成员变更、Percolator、LSM vs B+Tree 应届生如何半年找到数据库内核工作
2022-01 牛客 Shopee 北京特征存储引擎 社招/实习信息不明 PingCAP Talent Plan TinyKV、Badger/LSM、WiscKey、SSD 随机读写、LSM 写入流程、Raft 读流程、2PC 缺点、mmap/CGO Shopee 北京特征存储引擎面经
2021-04 牛客 PingCAP 数据库工程师 春招实习 6.824 背景、Raft Figure 8、IO 多路复用、RPC 调用链路、ACID/CAP、分布式事务、OS 内存/页表/调度 PingCAP 数据库工程师春招实习面经
未标明 Go 语言中文网 PingCAP 研发 实习 分布式锁、Etcd/Redis 锁实现、故障/网络中断测试、事务隔离级别、申请内存流程、CPU 调度、Go 协程/GC、网络栈、IO 多路复用 PingCAP 研发实习面经

高频考点聚类

Raft / Multi-Raft

优先级最高。近两年的百度、腾讯、字节/TikTok 都会追。

  • Raft 基本流程:Leader 选举、日志复制、commitIndex、applyIndex、任期、日志匹配性质。
  • 异常场景:Leader 宕机、网络分区、脑裂、选举冲突、旧 Leader 恢复、日志分歧。
  • 持久化:term、vote、log、snapshot 分别什么时候落盘;崩溃恢复后如何继续。
  • Snapshot:什么时候生成,如何安装,边服务边 snapshot 如何保证一致性。
  • 读优化:ReadIndex、LeaseRead、Leader Lease、FollowerRead 的适用条件和风险。
  • PreVote:解决什么问题,为什么能减少无意义 term 增长。
  • Multi-Raft:为什么单 Raft Group 不够,Region/Shard 如何和 Raft Group 对应,Region 分裂与迁移如何做。

Percolator / 分布式事务

高频出现在百度、字节、数据库内核方向。

  • 2PC 基本流程:prewrite、commit、primary key、secondary key、锁记录。
  • Percolator 和普通单机事务的区别。
  • Percolator 和传统 2PC 的关系:它解决了什么,没解决什么。
  • MVCC:timestamp、版本链、读写冲突检测、事务隔离级别。
  • 异常恢复:primary 提交但 secondary 未提交怎么办,锁遗留怎么办。
  • 性能问题:多轮 RPC、锁冲突、热点 key、事务大小、写放大。

LSM / RocksDB / Badger / LevelDB

腾讯 TEG、TikTok、RisingWave、Shopee 相关面经里非常密集。

  • LSM 写入路径:WAL、MemTable、Immutable MemTable、SSTable、Compaction。
  • 读取路径:MemTable、Block Cache、Bloom Filter、SSTable 多层查找。
  • LSM vs B+Tree:写入吞吐、读放大、写放大、空间放大、范围查询、缓存友好性。
  • Level0 特点:为什么 Level0 文件可能重叠,为什么读放大明显。
  • Compaction:触发条件、代价、对延迟的影响。
  • Badger/WiscKey:KV 分离,value log,为什么适合大 value。
  • Bloom Filter:误判、不漏判、适合过滤什么。

TinyKV 项目深挖

面试官通常不满足于“我实现了 Raft”,会追你自己的实现细节。

  • 你改了哪些模块,遇到过哪些 bug,怎么定位的。
  • TinyKV 和真实 TiKV 差在哪里。
  • TinyKV 如何做生产化:监控、恢复、限流、配置变更、性能压测、故障注入。
  • Raft store、scheduler、region、peer、message flow 的职责边界。
  • 如果要支持热点 Region、扩容、迁移、副本均衡,你怎么设计。

KV 场景题 / 系统设计

这些题通常用来判断你是否能把项目知识迁移到工程设计。

  • 设计一个高性能 KV 存储。
  • 设计广告日志/直播场景下的 KV 写入系统。
  • 设计支持 TTL 的 LRU/LFU/缓存系统。
  • 设计分布式唯一 ID。
  • 设计并发 HashMap 或持久化 HashMap。
  • mmap 持久化后进程崩溃,如何保证恢复正确性。

刷题顺序建议

  1. 先刷 2025 百度两篇、腾讯 TEG、TikTok 直播后端。
  2. 再刷 2024 腾讯 WXG 和腾讯日常实习,补 Raft 实现细节。
  3. 然后看 2023 字节基架和 2022 数据库内核合集,整理老但经典的数据库内核追问。
  4. 最后看 RisingWave、数据库内核求职博客,用来补 LSM、TiKV 扩容、Region、Snapshot 等工程化表达。

面试回答准备模板

每个项目问题尽量按这个结构答:

  1. 背景:这个模块解决什么问题。
  2. 核心机制:关键数据结构、状态机、消息流或读写路径。
  3. 异常场景:宕机、网络分区、并发冲突、恢复流程。
  4. 工程取舍:吞吐、延迟、一致性、可用性、复杂度之间的选择。
  5. 自己做过什么:实现、调试、测试、压测、优化或复盘。