生活分享

GitHub 公布新 Git 儲存架構 Rubicon:讓數千個 AI 代理同時對同一儲存庫推送

GitHub 在工程部落格說明代號 Rubicon 的新 Git 儲存架構。GitHub 稱內部測試達每秒 7,200 次推送,開發者使用 Git 的方式不變。新架構目前為有限私人預覽,預計明年初更廣泛推出。

閱讀時間約 5 分鐘

GitHub 公布新 Git 儲存架構 Rubicon:讓數千個 AI 代理同時對同一儲存庫推送
圖片:Mokaair (Original editorial artwork)

發生了什麼事

GitHub 在官方工程部落格表示,上週在 GitHub Universe 宣布了新的 Git 儲存架構。GitHub 稱,這套架構每秒可處理數千次寫入,讀取能力則可依需求擴展。儲存庫是存放專案程式碼與修改紀錄的地方;推送(push)是把本機的程式碼變更上傳到 GitHub。GitHub 說,內部測試顯示新架構可支援 5,000 個代理同時處理一個儲存庫,每秒推送 7,200 次,讀取延遲也維持穩定偏低。以上數字均為 GitHub 自行公布的測試結果。

GitHub 解釋了改造的原因。目前 GitHub.com 最繁忙的儲存庫每秒最多只有數十次寫入,而且通常是短時間的爆發。隨著代理平行且全天候工作,GitHub 預期一年內這種爆發會變成持續的高寫入量。每次推送還會引發更多讀取,例如自動測試與部署系統會拉取新的提交。因此 GitHub 把目標設為比現在多至少兩個數量級(約 100 倍以上)的規模。

新架構如何運作

GitHub 表示,設計的核心觀察是:Git 物件(檔案內容、提交紀錄等資料)一旦寫入就不會改變,並以內容命名,所以多個寫入者可以同時儲存,不必互相協調。真正需要協調的只有參照的更新;參照就是「某個分支目前指向哪個提交」這類指標。由於只有參照需要協調,儲存資料、處理請求與維護儲存庫這三件事可以各自獨立擴展。

  • 物件:GitHub 表示,packs(Git 把許多物件打包在一起的檔案)與輔助讀取的加速資料,都存放在雲端物件儲存服務 Azure Blob Storage。
  • 參照:參照與 pack 清單存放在名為 Ref-CAS 的複製日誌服務。Ref-CAS 是 Reference Compare-and-Swap 的縮寫,意思是只有當參照仍是寫入者預期的值時才更新。每次更新要等多數副本記錄後才生效。
  • 虛擬副本:可隨時替換的運算資源,負責處理讀取與寫入。它的本機磁碟只是可重建的快取,儲存庫變忙時就增加副本。
  • 壓縮節點:這裡的「壓縮」(compaction)是指合併檔案,而不是刪減內容。壓縮節點在背景直接對儲存服務運作,把許多小 pack 合併成較少、較大的 pack,所有物件都會保留,也不佔用處理請求的副本。
GitHub 工程部落格描述的設計差異
項目舊做法或原型GitHub 描述的新做法
參照更新以單一 blob(雲端儲存中的一個檔案)為索引的預寫日誌,同一時間只能進行一筆條件式寫入,寫入約每秒數百次Ref-CAS 只鎖定這次更新涉及的參照,GitHub 稱單看參照狀態可達每秒數萬次操作
參照分段原型把參照分散到多個區段 blob,寫入變快,但每次讀取都要檢查每個區段比對版本號;版本未變時,回覆不含任何參照,只需一次比較
壓縮在提供流量的副本上執行,而且每個副本都要執行由獨立節點在背景執行,每個節點以租約(暫時的獨占權)認領一部分資料(分片)

對一般讀者與開發者的實際影響

GitHub 表示,對開發者而言 Git 仍是 Git:推送、擷取(fetch,下載最新變更)與建立分支的方式都相同,保護機制也維持。GitHub 的目標是讓所有儲存庫,從個人小專案到最繁忙的大型儲存庫,都跑在同一套架構上,不需要特殊處理。

在推出時程上,GitHub 說這套架構目前只開放有限的私人預覽,預計明年初更廣泛推出,因此多數使用者短期內不會直接感受到變化。GitHub 也列出後續計畫,包括只讀取需要的資料、部分副本、全域副本、原子提交 API(一次送出多個檔案的變更,要嘛全部成功、要嘛整筆退回)與事件串流等,這些目前都還只是計畫。

常見問題

這項架構現在可以使用嗎?

GitHub 表示目前為有限的私人預覽,預計明年初更廣泛推出。

一般開發者需要改變使用 Git 的方式嗎?

GitHub 表示不需要:推送、擷取與建立分支的方式都相同,保護機制也維持。

每秒 7,200 次推送的數字可靠嗎?

這是 GitHub 自己公布的內部測試結果,目前未見獨立第三方驗證,應視為 GitHub 的說法。

為什麼要特別為 AI 代理重做儲存架構?

GitHub 表示,代理平行且全天候工作,預期會讓單一儲存庫的寫入從短時間爆發變成持續的高寫入量,而且每次推送還會帶來更多讀取。

查看同分類最新消息

資料來源

生活分享