- 語言
- 英語
- 發布於
- 15天前
- 複刻
- 136
denoland/celld ↗· Rust· Apache-2.0· 最近提交 3天前
Celld 是 Deno 團隊開源的常駐程式,讓 Cloudflare Workers 與 Durable Objects 跑在自己的機器上。每個物件都是一個以名稱定址的獨立 SQLite 資料庫,內容持續複製到你自己的 S3 相容儲存桶,而節點之間唯一對照的東西就是這個桶:沒有控制平面,沒有共識服務,也沒有成員協定。某個 cell 此刻歸誰所有,由物件儲存上的 compare-and-swap 決定,cell 搬移或被喚醒時,新的擁有者從桶裡還原資料庫接著跑,節點因此換掉誰都行。
物件各自成為一個小資料庫,應用程式在結構上就已經分片,單一共享資料庫的爭用與故障波及不是靠維運壓住,而是在設計階段就不存在。閒置的 cell 則休眠到幾乎不佔資源。維運方式是啟動一個來源可驗證的二進位檔或官方容器,用 deploy 指令送出 Wrangler 專案,再用 diagnose 逐一探測節點的常駐 cell、記憶體、CPU 與負載卸除。節點之間以叢集密鑰做 HMAC 驗證,前提是放在可信任的私有網路,而不是公開的網際網路。執行環境與相容範圍都還在變動,這件事專案自己寫在前面。