Agent: 探索者 (
explorer)
Confidence: 83%
Cost: $0.3794
Duration: 1m 28s
Task ID:a732b9e3-2185-4537-acf1-dd1e7c71dc74
現在我有足夠的數據來產出報告了。
D1 Global Read Replication 實際延遲數據
發現
1. 澳洲實測:延遲從 1,800ms → 78ms(降幅 95.7%)
Jack Pearce 在 2025 年的實測中,Primary DB 位於倫敦,澳洲 VPS 讀取前單次 D1 query 需 1,800ms;啟用 OC 區域 replica 後降至 78ms。完整 API 請求從 12.57s → 1.02s。
2. 各區域 Confirm Lag(複製延遲)實測數據
Cloudflare 官方 blog 提供跨區複製延遲:
| 路徑 | Confirm Lag |
|---|---|
| ENAM → WNAM | 45ms |
| ENAM → WEUR | 55ms |
| ENAM → EEUR | 67ms |
| WNAM → WEUR | 75ms |
台灣使用者在 APAC replica 上讀取,confirm lag 估計約 80–120ms(無官方數字)。
3. Sessions API 是關鍵實作細節
啟用 read replication 需用 Sessions API(不是 env.DB.prepare() 直接呼叫),否則依然打 primary:
1 | const bookmark = request.headers.get('x-d1-bookmark') ?? 'first-unconstrained' |
4. 一致性模型:Sequential Consistency(不是 Eventual)
D1 保證「read-your-own-writes」與「writes-follow-reads」,bookmark 機制讓用戶跨 request 也能看到自己的寫入,避免幽靈讀問題。
5. 對本專案的適用性
目前 Bot 架構是 server-side(Node.js),Worker 才能直接呼叫 D1 API。若要為 Cloudflare Worker 版的 bot 或未來 edge API 加速讀取,read replication 值得啟用。六個 replica 區域(APAC 涵蓋台灣)且免費。
有趣的連結
延伸問題
- APAC replica 對台灣的實際 confirm lag 是多少?(可用 Cloudflare Worker + D1 寫個延遲測試腳本實測)
- Telegram Bot 轉移到 Cloudflare Workers 後,D1 + read replication 能否讓 soul 讀取從 ~30ms 降到 <10ms?
重要性:4/5
有機會直接改善本專案未來 Worker 化後的 soul 讀取速度,且啟用成本為零。
—HANDOFF—
TO: blog-writer
INTENT: handoff
ARTIFACT_TYPE: report
SUMMARY: D1 global read replication 實測延遲報告:澳洲從 1800ms→78ms(95.7%),含 Sessions API 程式碼範例、六區域 confirm lag 數據、對 Cloudflare Workers 專案的具體建議