本文定義 Spanner Omni 的核心概念和部署拓撲。本節將說明區域、可用區和伺服器之間的階層式關係,並解釋這些元件與部署作業中的資料複製和儲存作業有何關聯。
Spanner Omni 概念
以下各節詳細定義 Spanner Omni 文件中使用的術語。熟悉這些概念可確保您清楚瞭解系統架構和運作行為。
部署作業
部署 Spanner Omni,即可在資料中心或公有雲帳戶中使用資料庫。您會根據部署設定中指定的參數建立部署作業。Spanner Omni 部署作業等同於Google Cloud中的 Spanner 執行個體。
Deployment 設定
提供 Spanner Omni 部署作業的區域、可用區和伺服器位置與規格。您可以選擇單一伺服器、單一區域或多區域部署設定。詳情請參閱「部署設定」。
位置
相當於 Google Cloud 條款中的「區域」。兩個區域之間的網路延遲時間不容小覷。如果是地端部署作業,您可以自行定義區域。如果是雲端部署作業,區域必須與相應雲端服務供應商的區域一致。一個區域可以有多個可用區。
程序
Spanner 伺服器會分叉並管理多個程序。舉例來說,TimeServer 和 spanserver 都是 Spanner 中的程序。個別程序可能會有 CPU 和記憶體用量等監控統計資料。程序可以開啟通訊埠,與部署中的其他伺服器通訊。
備用資源
Spanner 會複製資料,確保資料可用性並提供地理位置資訊。就整體而言,Spanner 會將所有資料整理成資料列。Spanner 會建立這些資料列的多個副本 (或複本),然後將這些複本儲存在不同的地理區域。Spanner 使用以 Paxos 為基礎的同步複製架構,投票副本會針對每個寫入要求進行投票,然後再將寫入作業提交至資料庫。與 Spanner 相同,Spanner Omni 也有三種備用資源類型:讀寫、唯讀和見證。詳情請參閱 Spanner 說明文件中的「副本類型」。
伺服器
伺服器是運算資源,例如 VM 或容器,Spanner Omni 伺服器會在其中執行。每部伺服器都有自己的系統資源:CPU、記憶體和儲存空間。伺服器會儲存及提供使用者資料,藉此提供 Spanner Omni 的功能。
根伺服器
根伺服器會儲存重要中繼資料,以支援區域。舉例來說,根伺服器會儲存伺服器成員資格和其他區域設定資訊。
每個區域的根伺服器數量必須是介於 1 到 9 之間的奇數 (含頭尾),以確保一致性。如果伺服器數量為偶數,部署作業可能會失敗。設定區域時,請將伺服器指定為根伺服器。建議您使用一個可用區進行開發或測試,並使用三個可用區做為高可用性生產區域。
規劃部署作業時,請仔細考慮根伺服器的數量。雖然您可以在部署作業建立後變更根伺服器數量,但我們不建議這麼做。
非根伺服器
非根伺服器會儲存及提供使用者資料,並提供擴充區域運算容量和儲存空間的方法。您可以視工作負載需求,在部署作業中新增任意數量的非根伺服器。部署作業完成後,您可以變更非根伺服器的數量。
分割
Spanner 分割區會保存一系列連續的資料列,Spanner 會依主鍵排序這些資料列。Spanner 會為每個分割建立副本,並儲存在各個可用區。
儲存空間
伺服器連接的永久儲存空間。
可用區
一或多部伺服器組成的群組。如要複製資料,請為每個副本建立一個可用區。如為地端部署,建議您盡量減少可用區之間的基礎架構 (VM、磁碟) 共用情形。如果是雲端部署,請將可用區與 AWS 中的可用區或 Google Cloud中的可用區對齊。
工作站
專屬的無狀態運算節點,可卸載背景和耗用大量資源的作業,例如在大型資料表上建立向量索引。Worker 適用於 Spanner Omni 的商業版,計費方式與部署作業中的伺服器相同。開發人員版不支援 Worker。與伺服器不同,工作人員不會代管使用者資料、處理使用者流量、參與領導者選舉,也不會屬於特定區域,而是會向某個位置註冊。詳情請參閱「部署及管理工作人員」。