vatt'ghern jaskier's ballads

2026.06.01 —— 今日 10 則

TODAY'S THREAD 今天三篇 deep 從三個角度看「大尺度系統在演化過程裡怎麼留住可預測性」:Cloudflare Code Orange 把多月的 fail-small 收口、Stripe 揭露 document database 怎麼撐 99.999% uptime 的 zero-downtime migration 機制、Notion 用兩年把 vector search 同時做到 10× 規模與 1/10 成本。其餘七則順著兩條線:一是 systems 底層被重新翻出來教(justine.lol 把 Linux restartable sequences 拆給看、Zig 的 assert 設計被點名、Meta 的 post-quantum crypto migration 給出 framework、Docker 把 CVE-2026-31431 "Copy Fail" 的緩解攤開);二是 agent 工程化的下一階段(Spotify Honk part 4 用 background coding agent 處理大規模 dataset migration、Dropbox 用 DSPy 替 Dash 的 relevance judge 調參、TBT Window 被點名為前端真正缺的那個延遲指標)。

10 items ai · 3 systems · 2 infra · 3 web · 1 backend · 1
0 / 10 read
#04

Notion 用兩年把 vector search 推到 10× 規模、1/10 成本——chunking、索引、embedding 三層全換過

Notion 把兩年來 vector search 的演化攤開:從 2024 年初的「pgvector + Postgres 單機」起步,到現在跨 region 的多階段 pipeline,document 數量從約 600M 條漲到 60 億條,單條查詢成本卻被砍到原本的 1/10。關鍵是把 chunking 策略、ANN 索引選型、embedding model 三層全部解耦,獨立優化、獨立量測——不是換一個 vector database 就能達到的工程量。對任何替自家產品上 RAG 的隊伍,這份兩年回顧把「pgvector 撐到哪?什麼時候該分片?哪一段 cost 最值得砍?」答得很具體。

read source → deep vector-search

#08

Spotify Honk part 4:background coding agent 處理 downstream dataset migration

Honk 系列第四集,Spotify 把「consumer dataset migration」這條每季都要處理一次的雜活交給 background coding agent:agent 跑在 Backstage + Fleet Management 之上,由 owner team 觸發、收到一個包含 schema diff 與下游消費者清單的 brief,自動產生 PR、跑 backfill、回報結果。重點不是 agent 變聰明了,而是「給 agent 一份足夠完整的 brief 之後,整個流程能不能不需要人值班」。對在管理大規模 data platform 的隊伍,這份 case study 比「agent 取代工程師」之類的口號實際得多。

read source → background-agents

#10

Dropbox 用 DSPy 替 Dash 的 relevance judge 調參——把 prompt engineering 換成可量測的 optimization loop

Dropbox Dash 的搜尋背後跑著一個 LLM-as-judge 的 relevance scorer:對一條 query + 一筆 result,給出相關度分數。團隊用 DSPy 把這個 judge 的 prompt 與 few-shot example 抽成可學習的參數,再用 100 多筆人工標注做 bootstrap optimization——最後在 holdout set 上的 agreement 從 73% 拉到 84%。對任何把 LLM 嵌進 production retrieval pipeline 的人,這條「不要手寫 prompt,把它當 hyperparameter 學」的路徑值得抄。

read source → dspy

#01

Restartable sequences——Justine Tunney 把 Linux 上那個少有人提的 lockless 原語完整拆過

rseq 是 Linux 4.18 進主線的一條 syscall:讓 user-space 能宣告「這段程式碼若被搶占就重做」,於是 per-CPU 資料結構不需要任何 atomic 指令就能做到 lock-free。Justine 把這條冷門但威力極大的機制從 ABI、kernel 處理、到 glibc 的封裝逐層拆給你看,並把它和 transactional memory、futex、cmpxchg 做對比——順帶展示 rseq 怎麼讓 jemalloc / tcmalloc 把 thread-local cache 的開銷再砍一截。對寫 runtime / allocator / lock-free queue 的人是必讀,對其他 systems engineer 是「原來 kernel 已經給你這個禮物了」的提醒。

read source → restartable-sequences

#05

「你必須修你的 assert」——Zig 的 Loris Cro 把 assertion 設計裡的安靜陷阱攤開

大多語言的 assert 在 release build 直接消失,於是「assert 失敗」與「assert 沒跑」變得肉眼難分。Loris Cro 用 Zig 的 std.debug.assert 與 std.testing 兩條路為例:assert 應該是「程式不變式的編譯後守門人」,不是「測試替身」,而 Zig 的設計允許你在 release 留下被監控的 assert,讓 invariant 在 production 仍會炸而不是靜悄悄出錯。對任何在 C / C++ / Rust 裡寫過 NDEBUG 條件 assert 的人,這篇是把舊習慣重新檢視的機會——也順帶說明為什麼 Zig 對 unreachable 的處理跟 Rust unreachable!() 不一樣。

read source → zig-asserts

#06

Cloudflare Code Orange 收口——「fail small」一年計劃完成,Snapstone 與 Engineering Codex 成標配

2025 年 6 月那場全球宕機之後 Cloudflare 對內宣布 Code Orange——把所有非必要功能都凍結,全公司投人到 reliability。一年過去,「fail small」的目標達成:新工具 Snapstone 讓每一筆 control-plane config change 在送出前自動 dry-run 全網一遍,Engineering Codex 把過去散落在 wiki 的「不要在哪些地方踩雷」收成可被 lint 的規則檔。對任何在跑大型 control plane 的隊伍,這份從事故 → 工具 → 文化的軌跡比抽象的 SRE 教條實際得多。

read source → deep fail-small

#07

Meta 把 post-quantum cryptography migration 變成可重複的 framework——TLS、internal RPC、cold storage 三條軸線

Meta 寫了一份遷移 framework:先盤點所有「會被『記下來、之後解密』」的 traffic(HTTPS 與 RPC 是大宗)、再分軸線推 ML-KEM-768 上線,最後把 cold storage 與長期備份分批換到 hybrid signature。重點是把整個 migration 做成「可被 audit、可被 rollback、可被 metric 追」的工程流程,而不是一次 big-bang 切換。對任何被 NIST PQC 標準 deadline 推著走的安全團隊,這份 framework 給出了「先做什麼、再做什麼、出問題怎麼回頭」的順序。

read source → post-quantum-crypto

#09

Docker 把 CVE-2026-31431 「Copy Fail」的緩解攤開——seccomp、AppArmor、SELinux 三層替舊 kernel 補位

CVE-2026-31431 是 Linux kernel 在 copy_file_range 路徑下的權限提升漏洞——任何 container 內的 process 都能跨 mount namespace 寫到 host。Docker 在 Engine 25.06 加上三層緩解:seccomp 預設 deny copy_file_range、AppArmor profile 收緊 host write、SELinux 加上對應的 type enforcement。對 kernel 還沒升的 fleet,這條 path 是現實的「在 host 不重啟的前提下把 attack surface 縮小」做法。文章順帶說明為什麼 Docker 不選 LSM 全攔——三層各有 false-positive trade-off。

read source → container-cve

#03

前端缺的那個延遲指標:TBT Window——Harry Roberts 把「主執行緒卡多久」拆成 200ms 區間

TBT(Total Blocking Time)一直是抓 main-thread 延遲的核心指標,但它只給一個總和,無法回答「我哪一段時間特別卡」。Harry Roberts 提出 TBT Window:把頁面載入後的時間切成 200ms 區間,逐窗計算 TBT,畫成一條曲線——立刻看得出「第二秒突然出現一個 280ms 的 long task」這種 outlier,而傳統 INP/TBT 把它平均掉了。對前端 perf 工程師,這是一份「能讓既有 RUM 資料多回答兩個問題」的免費升級。

read source → web-perf

#02

Stripe 揭露 document database 怎麼撐 99.999% uptime——zero-downtime data migration 的內部 Data Movement Platform

Stripe 的核心交易資料跑在 sharded MongoDB(document database),五年來維持 99.999% uptime。背後的關鍵不是某個神奇的 ops trick,而是一套叫 Data Movement Platform 的內部系統:把所有 schema migration、shard rebalance、跨集群搬遷都收進一個「先複寫、再對賬、最後切換」的 state machine,每一步都可被 pause、resume、rollback。對任何把核心資料放在 sharded NoSQL 上的隊伍,這份「migration 是工程而非夜班操作」的設計值得照搬。

read source → deep zero-downtime-migration

today's deep reads

Code Orange 收口——Cloudflare 怎麼把一年的 fail-small 計劃落實到 Snapstone 與 Engineering Codex

2025 年 6 月那次宕機之後,Cloudflare 對內宣布凍結所有非必要功能,全公司投人到 reliability。一年後,他們公布 Code Orange 完成的結果:哪些工具是新蓋的、哪些舊流程被換掉、文化層面留下了什麼?Snapstone 在送出 control-plane config 前怎麼跑 dry-run?Engineering Codex 把哪些以前的事故經驗收成 lint 規則?事故 → 工具 → 文化的轉化要花多久?

Stripe 的 Data Movement Platform——把 schema migration、shard rebalance、跨集群搬遷收成一個 state machine

Stripe 的核心 OLTP 跑在 sharded MongoDB 五年來維持 99.999% uptime。Data Movement Platform 把所有 migration 變成「先複寫、再對賬、最後切換」的標準流程:每一步可被 pause / resume / rollback,每一筆變更都有對賬報告。state machine 怎麼設計?對賬時抓到不一致怎麼辦?多 region replica 切換時 idempotency 怎麼維護?這份內部 platform 的細節,是任何在 sharded NoSQL 上跑核心業務的隊伍都該對照看的設計。

Notion 兩年的 vector search 路:從 pgvector 單機到 60 億 chunk、成本砍掉九成

Notion 把兩年來 vector search 從 pgvector + Postgres 起步、到現在跨 region 的多階段 pipeline 全部攤開:document 數量從約 6 億漲到 60 億,每條 query 的成本反而砍到原本的 1/10。哪一段最先撞牆?哪些選型回頭看是錯的?chunking 策略、ANN 索引、embedding model 三層為什麼要分開優化?對任何在替自家產品上 RAG 的隊伍,這份兩年回顧是少數把「pgvector 撐到哪、什麼時候該換、換成什麼」答得具體的工程紀錄。