THU · 08.06 · WEEK 02 · DAY 4
Dropbox:续传、提交、同步与冲突
完整覆盖 Dropbox 三个 live deep dives 和 Staff+ expectation。重点是 multipart upload 的可信完成、delta sync、版本冲突、安全边界与故障回收。
学习源包
按顺序打开。Hello Interview 与 DDIA 链接都直达今天需要的 live subsection,不做整章地毯式阅读。
Dropbox · Potential Deep DivesEXACT SECTION
deep dive;完成后在白板或口述中留下对应证据。
Dropbox · 1) How can you support large files?EXACT SECTION
deep dive;完成后在白板或口述中留下对应证据。
deep dive;完成后在白板或口述中留下对应证据。
Dropbox · 3) How can you ensure file security?EXACT SECTION
deep dive;完成后在白板或口述中留下对应证据。
Dropbox · What is Expected at Each Level?EXACT SECTION
level expectation;完成后在白板或口述中留下对应证据。
Dropbox · Mid-levelEXACT SECTION
level expectation;完成后在白板或口述中留下对应证据。
Dropbox · SeniorEXACT SECTION
level expectation;完成后在白板或口述中留下对应证据。
Dropbox · Staff+EXACT SECTION
level expectation;完成后在白板或口述中留下对应证据。
DDIA Ch6 · 同步引擎与本地优先软件EXACT SECTION
写清 local → remote、remote → local、断网重连与 cursor replay。
DDIA Ch6 · 最后写入胜利(丢弃并发写入)EXACT SECTION
拒绝客户端时钟 silent LWW;定义 baseVersion 与 conflict copy。
AWS S3 · Multipart upload overviewEXACT SECTION
该官方材料改变 upload contract:uploadId、part number/ETag、Complete/Abort 与 incomplete upload 清理。
今日验收
- 客户端上报 part 成功只用于进度;最终完成必须由服务端向 blob store 验证。
- Complete 响应丢失时用同一 upload/file identity 查询状态或幂等完成,不能盲目新建第二对象。
- 冲突解决以 server version 识别并发,保留用户数据;mtime 只能帮助展示,不能证明因果顺序。
必须产出:multipart state machine + upload commit/GC 表 + sync/conflict 时序 + signed URL security checklist。
08:50—10:55
系统设计块保持完整。最后十分钟永远用于无稿 close,防止学习退化为被动阅读。
| 时间 | 今日时间表 |
|---|---|
| 08:50—09:00 | 写四个不变量:可续传、服务端验证、单次可见提交、冲突不静默丢数据。 |
| 09:00—09:35 | 读 large files deep dive;画 initiate → upload parts → verify/ListParts → complete → metadata commit。 |
| 09:35—10:00 | 读 performance deep dive;比较 fixed chunks 与 content-defined chunking 的 delta sync 成本。 |
| 10:00—10:20 | 读 security deep dive;限定 signed URL 的 operation、object key、expiry、size/checksum 与 ACL check。 |
| 10:20—10:35 | 读 DDIA sync/LWW;画两个设备从同一 baseVersion 并发写的用户可见结果。 |
| 10:35—10:45 | 读 Mid/Senior/Staff+;写一个主动 steering 的 Staff follow-up。 |
| 10:45—10:55 | 闭卷追踪 upload 在 99% 断线、Complete 响应丢失、metadata DB 超时时如何恢复。 |
算法模块
NeetCode Tag:Two Pointers。三个 slot 全在同一连续 tag;每题记录 Pattern / Invariant / Bug / Complexity。
14:30—16:15NeetCode Tag · Two Pointers3 required slots
| # | 题目 | 当日目标 | 时间 |
|---|---|---|---|
| 1 | Trapping Rain Water | 复刷 · 对照双指针与 prefix/suffix 两种解法的空间代价。 | 14:30—15:05 |
| 2 | 3Sum | 限时 · 25 分钟,专查重复值与提前终止。 | 15:05—15:40 |
| 3 | Valid Palindrome | 限时 · 10 分钟,解释每次 pointer movement。 | 15:40—16:15 |
20:30—21:15
口述块只接受录音、实际回答或 repair 证据,不用“看完了”作为完成。
20:30—21:15 · Official engineering 40 分钟:只读 AWS Multipart Upload Overview;最后 5 分钟写它改变的三个具体决策。OpenAI/Anthropic agent 材料与本题无关,明确拒绝。
Detailed lecture notes, audio, recall scripts, PDFs, Staff Q&A, and mock packs are archived locally and are intentionally not published on this site.