歡迎來到 DAVID888 Daily 每日放送,今天我們為你精選了從大規模系統架構優化、舊硬體極致再利用、遊戲演算法與聲景工程,到網路基礎設施與歐盟資料隱私規範的深度技術解析。
Shopify 捨棄 Redis 改用 MySQL 處理高併發庫存預留,輕鬆扛住黑五狂歡流量
在處理電商極致的高併發結帳場景時,多數架構師的第一反應往往是引入 Redis 或 Kafka 作為快取與排隊層。然而,Shopify 在最新的技術分享中透露,他們成功在關鍵的「庫存預留(Inventory Reservations)」系統中,以 MySQL 8 的 SKIP LOCKED 機制全面取代了 Redis,並順利扛住 2025 年黑色星期五峰值每分鐘 510 萬美元交易量的嚴苛考驗。
架構與資料模型創新
Shopify 原本採用 Redis 與 MySQL 混合架構,但長期面臨雙系統資料不一致與同步延遲的痛點。為了解決這個難題,團隊重構了資料模型:
- 單一可售單位單獨建行(One Row Per Unit):摒棄傳統「單一行記錄總數量」的方式,改為每個可售單位佔據獨立一行,並將單一商品與地點組合的預留池上限限制為 1,000 行。
- 複合主鍵與精準行鎖:將主鍵設為
(shop_id, inventory_item_id, inventory_group_id, id),確保查詢直接命中聚簇索引(Cluster Index),將單次預留的行鎖(Row Lock)從 2 個精簡為 1 個。 - 降級隔離層級與標準化鎖順序:將事務隔離層級從
REPEATABLE READ調低至READ COMMITTED,避免SELECT ... FOR UPDATE SKIP LOCKED產生間隙鎖(Gap Lock)與 Supremum Lock 導致死鎖;同時統一所有操作存取資料表的鎖定順序。 - 批次化打包:針對多商品購物車,利用
UNION ALL在單次資料庫往返(Round-trip)中完成預留。
效能瓶頸的真實誘因
在優化過程中,Shopify 團隊於應用層 SQL 加上註解標籤(如 /* conn_tag:checkout_completion */)並透過 ProxySQL 進行解析,意外發現真正的系統瓶頸並非 MySQL CPU 計算能耐或查詢過慢,而是非預留業務代碼長時間占用 DB 連線,導致連線池耗盡。修正連線持有時間後,主庫 Writer CPU 降至 50% 以下,Reader CPU 更降至 16% 以下。
社群工程師對 Shopify 敢於將關鍵組件切回傳統關聯式資料庫的做法給予高度評價。這不僅破除了「高併發互斥排他必然依賴 In-memory 快取」的迷思,更提醒開發者:在進行效能除錯時,連線持有時間(Connection Hold Time) 與鎖定範圍往往比單純的 SQL 執行時間更容易成為系統吞吐量的真殺手。
把舊手機當伺服器:利用 Root 與 Chroot 打造極致省電的 Home Server
隨著二手智慧型手機的硬體規格越來越強悍,將閒置手機改造成家用伺服器已成為獨立開發者的熱門選擇。一位開發者分享了他將 CMF Phone 1(配備 8 核 ARM CPU、8GB RAM、128GB 快閃記憶體與 Wi-Fi 6/5G)徹底改造為家用伺服器,並取代原本 Hetzner VPS 的完整實踐過程。
突破效能瓶頸:從 PRoot 到 Rooted Chroot
作者最初嘗試安裝 postmarketOS,但因缺少 Wi-Fi 與 GPU 驅動而作罷;隨後轉向 Termux 環境,利用 proot-distro 在使用者空間攔截系統呼叫。然而在執行 Chrome 或 Surf 等系統呼叫密集型工作負載時,proot 的延遲高得令人無法接受。
最終的解法是取得系統 Root 權限,改用原生的 chroot 掛載 Debian 檔案系統。這讓 Linux 進程能夠直接調用 Android Kernel Syscalls,達到零效能損耗的運作效率。在維運方面,全機透過 Ansible 進行組態管理,金鑰使用 1Password SSH Agent 加密,並透過 Cloudflare Tunnel 與 WebSocket 封裝 TLS 串流接入外網流量。
電池安全與硬體選擇的社群辯論
這篇文章引發了社群對於手機作伺服器安全的熱烈討論:
- 電池膨脹與起火隱患:由於該手機不支援旁路供電(Bypass Charging),長期插電運作極易導致電池膨脹。作者選擇透過軟體將充電上限限制在 80%,網友則建議將設備放置於金屬彈藥盒(Ammo Can)或加裝自動滅火裝置。
- 與小主機(Mini PC)的取捨:部分網友認為購買二手 Intel i5 小主機是更穩定的選擇;但支持者指出,手機具備靜音、極低待機功耗、小巧體積以及「內建電池等同免費 UPS」的絕對優勢。
這項實踐證明了廢棄 ARM64 設備的巨大潛力:開發者不應試圖抹除 Android 替換成純 Linux OS,而是將 Android 作為底層硬體抽象層(HAL),利用 Termux + rooted chroot 實現無損的 Linux 運行環境。
大幅收斂 A* 尋路範圍!Red Blob Games 拆解「微分啟發式函數」
知名遊戲演算法教學網站 Red Blob Games 發表了關於 APathfinding 的最新深入研究,示範如何利用「微分啟發式函數(Differential Heuristics)」與三角不等式(Triangle Inequality),在完全不更動 A 演算法核心邏輯的前提下,大幅縮減搜尋節點數。
預計算地標與三角不等式
該技術的核心在於預先在地圖中挑選若干「地標(Landmarks, $L$)」,並針對每個地標執行 Dijkstra 或 BFS,預先建立全圖對地標的距離陣列 cost[nodeId][landmarkId]。
在執行 A* 尋路時,利用三角不等式導出的下限公式:
$$cost(B, X) \ge cost(B, L) - cost(X, L)$$
取多個地標計算結果的最大值 $max()$ 作為啟發式估值(Heuristic Value)。運行時僅需進行極快的陣列查表與一次減法,即可獲得極度貼近真實路徑的預估成本。
驚人的測試數據
- Dragon Age (Circle Tower):搜尋探索節點數從 4,338 個劇降至 1,597 個。
- Cogmind (Factory 5):配合隨機路徑分佈自動化擺放地標後,探索節點數從 4,050 個降至 894 個。
- Maze(複雜迷宮):傳統曼哈頓距離(Manhattan Distance)在迷宮中幾乎失效,加入 4 個地標後,探索節點數從 92,054 個巨幅降至 12,585 個。
網友指出,此方法在地形固定的 RPG 或 RTS 遊戲中效果拔群,但若應用於《矮人要塞》(Dwarf Fortress)這類玩家能隨時拆牆建牆的動態遊戲,預計算表會失效。這是典型的「以空間換取極致時間」策略,開發者只需付出極少量的記憶體成本,就能讓傳統 A* 演算法獲得質的飛躍。
Fastmail 推出歐盟資料中心,但物理存放地並不等於法律管轄權
知名電子郵件服務商 Fastmail 宣布在阿姆斯特丹建置了自建的歐盟資料中心,允許使用者選擇將主郵件資料儲存於歐盟境內。然而,這項看似符合 GDPR 與隱私法規的舉措,卻引發了技術社群對於「資料主權」的深刻檢視。
架構與法律約束的真相
Fastmail 坦承,雖然主資料庫部位於阿姆斯特丹(採用託管自建伺服器、機櫃鎖定與靜止資料加密),但由於歐盟目前僅有一個據點,為了系統容災與維運,跨區備份副本與系統 Log 目前仍統一集中於美國費城(Philadelphia)。
更關鍵的瓶頸在於法律管轄權:Fastmail 是一家澳洲公司,受澳洲《Assistance and Access Act 2018》以及澳美之間的《CLOUD Act》雙邊協定約束。
社群熱議:是隱私提升還是行銷話術?
Hacker News 社群許多網友批評,這樣的「歐盟資料區」很大程度上只是給予使用者的心理安慰。因為 Fastmail 屬於五眼聯盟(Five Eyes)成員國企業,且在美國設有實體營運與備份伺服器,美國與澳洲執法單位依然可以透過法律途徑,強制要求 Fastmail 調閱並交出歐盟伺服器上的資料。
這給所有系統架構師與企業資安官帶來重要啟示:實體資料存放地(Physical Location)不等於法律資料主權(Legal Jurisdiction)。若企業有絕對防範外國政府調閱的需求,僅選擇公有雲的歐盟 Region 或非歐盟在地法人的機房是遠遠不夠的。
DNS 嶄新規範 _for-sale:用 TXT 記錄公開網域出售資訊
最新發布的 RFC 10023 正式定義了一項新的 DNS 規格:_for-sale.example.com。此規範允許網域名稱持有者透過 Standard TXT 記錄,對外宣告網域的出售意願與預期報價,無須再將網站重定向至滿是廣告的停泊頁面(Domain Parking)。
語法與解析安全要求
規範採用的語法結構為 _for-sale IN TXT "v=FORSALE1;tag=value",其中包含數個標準標籤:
fval=:開價金額與幣別(例如USD12500或EUR2500.00)。furi=:交易或聯絡網址(例如https://...或mailto:...)。ftxt=:自由文字說明;fcod=:自訂交易代碼。
為防範安全風險,規範要求解析端必須將 ftxt= 與 furi= 內容視為不可信輸入,防止 XSS 或自動惡意重定向攻擊,同時建議搭配 DNSSEC 防止報價被中途竄改。
社群對此 RFC 的看法相當分歧。不少網友擔心這會進一步助長「網域蟑螂(Domain Squatters)」的投機行為,讓他們能隱蔽地掛牌求售;不過從技術協議角度來看,利用底線前綴(_)擴充帶外元資料(Out-of-band Metadata)是非常乾淨且規範的做法,為機器可讀的網域交易提供了標準化管道。
2026 日全食開源地圖 EclipseFan:結合 3D 光線追蹤與氣象預報的極致呈現
為了迎接 2026 年 8 月 12 日即將橫跨格陵蘭、冰島與西班牙的日全食盛事,開源專案 EclipseFan 推出了一款集天體力學計算、3D 大氣模擬與即時氣象資料於一體的互動式地圖。
高精度計算與大氣光線追蹤
EclipseFan 整合了 NASA 5MCSE 數據與 Xavier Jubier 的月球地形修正,並運用 John Irwin 的 IQP 方法精確計算各地區的全食持續時間。最令人驚豔的是其氣象與渲染引擎:
- 3D 大氣光線追蹤(Ray-marching):引入法國氣象局 AROME 模型,計算太陽光穿透 1,500m、4,000m 及 8,000m 不同高度雲層的透過率。
- 地貌陰影模擬:支援 Zoom 16+ 級別的 3D 建築與山脈即時陰影投射,並可生成實體紙質旋轉星圖(Volvelle)。
由於本次日全食在西班牙發生時恰逢夕陽時分(太陽高度角極低),這套地圖的地形光影追蹤功能被天文愛好者譽為觀賞「地平線日全食」的必備神兵利器,堪稱 Web GIS 與 WebGL 技術融合的典範之作。
無字敘事的聲景藝術:《Hyper Light Drifter》音樂與音效設計剖析
知名獨立遊戲《Hyper Light Drifter》以其獨特的視覺風格與無文字對白敘事(Wordless Narrative)震撼玩家。遊戲音樂家 Disasterpeace(Rich Vreeland)與音效設計師 Akash Thakkar 在 GDC 講座中,深度分享了他們如何花費三年時間塑造這座霓虹廢土世界(Neon-nightmarish)的聲音語言。
在完全沒有文字與語音輔助的情況下,遊戲的核心情緒推進全靠音效的高低頻率變化與合成器音色的細微交織。音效設計師與作曲家在開發初期即密切參與遊戲機制的迭代迴圈,將聲音提升為互動體驗的核心組件,而非僅是後製階段的裝飾品。這場經典演講為現代獨立遊戲的聽覺與視覺一體化設計提供了最完美的示範。