FRI · 08.07 · WEEK 02 · DAY 5

横向迁移:读扩展、缓存与大对象的边界

今天不再增加项目。把 Distributed Cache 的基础设施机制迁移到 Dropbox:metadata cache、CDN、source of truth、读副本、分片与 large-object path。

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

学习源包

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

为 metadata lookup 选择 cache-aside,并写出 invalidation 与 stampede 修复。
画 hit、miss、DB fallback、populate 与 concurrent miss。
解释 ACL/revocation 为什么不能只等长 TTL。
选择 single-flight、jittered TTL 或 soft TTL,并绑定触发指标。
把 data path 与 application control path 分离。
列出 blob store 与 metadata DB 跨系统状态不一致的每个方向。
给 metadata DB、blob、change log、cache、CDN 一一标注 source/derived。

今日验收

  • ACL 或 revocation 的陈旧窗口必须短于产品安全承诺;immutable blob CDN 可使用更长 TTL。
  • replication 不能替代 partitioning,partitioning 也不能自动提供高可用。
  • 每个 cache miss 都能回到明确来源;每个 source outage 都有边界清晰的降级。
必须产出:跨项目机制矩阵:状态所有者、派生副本、读路径、写路径、失效、故障窗口、恢复与指标。

08:50—10:55

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

时间今日时间表
08:50—09:00写迁移问题:同样叫 cache,metadata cache 与 CDN 分别加速什么、陈旧时伤害什么。
09:00—09:25画 Dropbox read path:metadata/ACL → signed URL → CDN → blob origin。
09:25—09:50为 metadata cache 设计 key、value、TTL、negative cache、invalidation 与 stampede 保护。
09:50—10:15为 blob/CDN 设计 immutable object version key、cache-control、revocation 与 origin fallback。
10:15—10:35比较 replication 与 partitioning:哪一个提高可用性,哪一个扩容量;分别画 failure。
10:35—10:45完成 Difference Matrix:cache entry、blob version、metadata row 的 ownership 与恢复方式。
10:45—10:55三分钟口述:不要用缓存掩盖 metadata/ACL 正确性。

算法模块

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

14:30—16:15NeetCode Tag · Two Pointers3 required slots
#题目当日目标时间
1Two Sum II限时 · 15 分钟并给循环不变量。14:30—15:05
2Container With Most Water限时 · 20 分钟并证明移动规则。15:05—15:40
3Trapping Rain Water复刷 · 只看一次失败样例后闭卷重写。15:40—16:15

20:30—21:15

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

20:30—21:15 · Cross-project oral:先讲 8 分钟 Distributed Cache,再用 7 分钟回答 Dropbox 里哪些层是 cache、哪些绝不能只是 cache;重答最弱五分钟。
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.