柔和燈光下的辦公室裡,文件與綠色資料夾層層疊放。

產品筆記

靜靜擴充的資料庫

使用者越來越多,是件好事。但現有資料庫還能支撐多久,也逐漸成為問題。Authrim 會在需要之前為新帳戶準備好儲存空間,讓服務成長不必從資料搬遷開始。

先增加存放位置,再考慮搬遷

Authrim使用的Cloudflare D1對單個資料庫有容量上限:免費方案500 MB,付費方案10 GB。隨著使用者和資料成長,最終會需要新的存放位置。

Authrim從一開始就支援把帳戶分配到多個資料庫,因此擴容時不必搬遷所有已有帳戶。這裡把每個儲存單元稱為分片(shard)。

已有帳戶留在原處,為新帳戶增加存放位置。這就是帳戶儲存擴展的基本方式。

不同資料,成長速度也不同

租戶設定(例如OAuth客戶端和策略)、帳戶與個人資料、透過電子郵件查找帳戶位置的索引,在Authrim中分別儲存。

使用者增加不代表所有資料庫都要一起擴容。帳戶儲存與查找索引的記錄數量和成長速度不同,只需為有需要的部分增加容量。

租戶設定 OAuth客戶端、策略 保存租戶設定 帳戶與個人資料 Core與PII分開儲存 追蹤分配數量與成長 查找索引 查找帳戶儲存位置 預測並提前擴容 按資料用途分開儲存,為需要的部分增加容量。
帳戶主體和個人資料使用不同資料庫。分離的原因見個人資料放在哪裡

關注剩餘的帳戶名額

新帳戶會被分配到租戶可用的分片。系統優先選擇運作正常、已分配數量相對目標數量較低的分片。

判斷依據不是磁碟使用率,而是距離設定的目標帳戶數還剩多少名額。例如目標為10萬帳戶時,剩餘2萬的餘量可以作為準備下一處儲存的參考。

可用分片餘量較小時,系統會分配已準備好的備用分片。多個租戶共用的共享型,以及一個租戶獨享的專用型,都採用這一思路。

共享租戶

A、B、C共用分片,分隔線表示租戶邊界

專用租戶

僅A使用

共享與專用混合

共享池 專用:D A、B、C共享 D專用
無論共享、專用還是混合部署,新增分片都用於接收新帳戶。水位表示已分配帳戶數量,不代表磁碟使用率或實際擴容時刻。共享分片內的分隔表示租戶間邏輯隔離。

日常維運中,不必再重複做什麼

設定自動佈建後,註冊量每次成長時,工作人員不必再手動建立資料庫、準備表結構並連接新註冊位置。每次增加容量,也不必為已有帳戶制定搬遷計劃。

工作人員主要確認擴容進度、失敗情況,以及使用量和費用是否符合預期。權限不足或服務上限仍需人工處理。在這種分工下,Authrim負責準備下一個存放位置。

只看今天的空位還不夠

同樣剩餘2萬個名額,每天新增100個帳戶和每小時新增1萬個帳戶,準備時間完全不同。

Authrim結合目前分配數量與近期註冊速度,預測帳戶儲存和查找索引的容量需求。排程工作每分鐘執行,分配帳戶後也會更新帳戶預測。

計算需求時,會計入正在建立的分片,避免多個流程發現同一次容量不足後,各自重複建立資料庫。

從建立到投入使用

備用分片不足時,Authrim透過Cloudflare管理API建立D1,準備表結構、設定Worker存取並分發儲存位置。讀寫檢查通過後,才把資料庫投入分配。

自動執行需要啟用自動佈建,並分別設定D1與Workers的API權杖。無法自動執行時,工作人員可通過設定工具繼續操作。

建立進度會被保存。暫時通訊故障可以從該狀態重試;權限不足或資源上限則需要先解決原因,再繼續執行。

如果準備速度跟不上、註冊名額耗盡,新註冊可能需要重試。提前準備的目的就是減少這種等待。

是否搬遷資料,仍由維運人員決定

增加容量與移動已有資料是不同操作。例如,把租戶從共享分片遷往專用分片,不僅要新增位置,還要複製已有資料。

維運人員決定是否開始遷移。批准後,由Authrim執行同步、驗證與切換。

共享分片 A B C 多個租戶 共用一個分片 批准 遷移 批准後開始遷移 同步、驗證、切換 由一個 租戶獨享 A 專用分片
共享轉專用需要先獲批准,再同步、驗證並切換。其中有一個階段會短暫停止寫入。

目前支援的佈局變更是共享轉專用。尚未實作專用轉共享,也不會自動把已有帳戶重新均勻分布。

刪除退役分片同樣需要人工批准。容量成長不會自動觸發已有資料的移動或刪除。

已經驗證到什麼程度

2026年7月使用20萬個測試帳戶測量時,Core約208 MB,PII約238 MB,Lookup約426 MB,分別不到付費方案單庫10 GB上限的5%。實際用量取決於儲存的屬性與索引。

每個分片的預設目標是10萬帳戶。系統保留準備下一個分片的餘量,而不是盡量填滿物理容量。

Authrim仍處於pre-1.0階段,長期、大規模正式環境的維運經驗還有待積累。20萬個測試帳戶的容量測量,不等同於數百萬人每天使用的正式環境實績。

讓成長少一些遷移計劃

小型服務不需要一開始就準備大型部署。可以從少量分片開始,隨著註冊成長增加位置。Authrim把所需準備和流程納入系統。

使用者開始成長時,不必先把資料庫搬遷列為首要任務。減少這些工作,才能把更多時間投入服務本身。

測量時間為2026年7月30日,使用20萬個測試帳戶。MB採用十進制單位。D1容量上限見Cloudflare文件