A distributed queue in a single JSON file on object storage
Hacker News
We replaced our internal indexing job queue with a single JSON file on object storage using a stateless broker and CAS to achieve 10x lower tail latency and at-least-once guarantees. This bottom-up design leverages the simplicity and scalability of object storage to ensure predictable performance for asynchronous indexing work.
如何在物件儲存空間上利用單一 JSON 檔案構建分散式佇列
Hacker News
7 天前
AI 生成摘要
我們將內部的索引作業佇列替換為物件儲存空間上的單一 JSON 檔案,並透過無狀態代理與 CAS 技術實現了尾部延遲降低 10 倍以及至少一次交付的保證。這種由下而上的設計利用了物件儲存簡單且可擴展的特性,確保非同步索引工作的效能可預測。
此外,關於代理伺服器的角色也引發了技術細節的爭論。有網友質疑,當系統引入了代理伺服器來解決競爭問題時,實際上已經偏離了「純物件儲存」的初衷,且代理伺服器在崩潰恢復期間的延遲(例如等待 CAS 失敗以切換領導權)可能會影響即時性。雖然 turbopuffer 的共同創辦人親自回覆解釋,由於採用了群組提交技術,實際產生的 API 調用成本極低,且該公司並未使用傳統資料庫,因此這是目前最符合其業務需求的「適度複雜度」方案,但社群普遍認為這種架構具有高度的場景特殊性,並不適合盲目推廣到所有應用中。
延伸閱讀
在討論中,有網友提到 SMTP 協定其實也是一種存在數十年、具備高吞吐量且保證至少交付一次(at-least-once delivery)的經典訊息隊列設計。另外,也有人建議可以利用 S3 的 Range Header 功能來實現對大型檔案的局部讀取(Seek),以優化讀取效能。