MON · 08.03 · WEEK 02 · DAY 1

Distributed Cache:先定义事实,再画读路径

闭卷起手后完整读到 HLD。今天建立 cache entry、TTL、LRU、source of truth 与单节点正确性,不提前跳到集群名词。

08:30 wake08:50—10:55 system design14:30—16:15 + 20:30—21:15

学习源包

按顺序打开。Hello Interview 与 DDIA 链接都直达今天需要的 live subsection,不做整章地毯式阅读。

required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
required reading;完成后在白板或口述中留下对应证据。
把缓存定性为派生数据;写出权威状态、重建来源和陈旧窗口。
把 <10ms、1TB、value 大小、复制因子和内存预算放进同一容量判断。

今日验收

  • get 在返回前检查 expiry;过期 entry 绝不能因 janitor 尚未运行而继续可见。
  • LRU 的 hash map + doubly linked list 能让 lookup、touch、evict 都保持 O(1)。
  • 能明确回答:缓存里的值丢光后,从哪里恢复;若答不出,尚未定义 system of record。
必须产出:单节点状态图 + get/set/delete/expire/evict 时序 + 一张 SoR/derived 决策卡。

08:50—10:55

系统设计块保持完整。最后十分钟永远用于无稿 close,防止学习退化为被动阅读。

时间今日时间表
08:50—09:00写一句题目契约:1TB、100k RPS、get/set <10ms、eventual consistency、durability 不在默认范围。
09:00—09:25闭卷画单节点 cache:hash table + TTL + LRU;先写三个不变量。
09:25—10:05按精确目录读 Understanding → HLD 三个功能段;只修正自己白板上的错误。
10:05—10:45读两段 DDIA,写 system of record / derived data 决策卡和容量算式。
10:45—10:55无稿口述两分钟:为什么 cache 不是数据库的另一个名字。

算法模块

NeetCode Tag:Two Pointers。三个 slot 全在同一连续 tag;每题记录 Pattern / Invariant / Bug / Complexity。

14:30—16:15NeetCode Tag · Two Pointers3 required slots
#题目当日目标时间
1Valid Palindrome新题 · 双端收缩前先定义跳过字符与大小写归一化不变量。14:30—15:05
2Two Sum II新题 · 有序数组单调性决定移动哪一端。15:05—15:40
33Sum新题 · 排序、固定一端、去重边界。15:40—16:15

20:30—21:15

口述块只接受录音、实际回答或 repair 证据,不用“看完了”作为完成。

20:30—21:15 · 英文 8 分钟 recall:requirements → API → single-node HLD;回听后只重答最模糊的一个不变量。
Local study materials
Detailed lecture notes, audio, recall scripts, PDFs, Staff Q&A, and mock packs are archived locally and are intentionally not published on this site.