執行個體

本頁提供 Cloud Spanner 執行個體、執行個體設定及節點的相關概念,同時也說明地區性及多地區執行個體間的差異與優缺點。如果您不熟悉 Cloud Spanner 中複製功能的運作方式,請先參閱複製功能

如要進一步瞭解如何建立、列出、編輯及刪除執行個體,請參閱建立及管理執行個體

執行個體總覽

如要使用 Cloud Spanner,您必須先在 Google Cloud Platform 專案中建立 Cloud Spanner 的「執行個體」。這類執行個體是一種資源分配單位,在執行個體內建立的 Cloud Spanner 資料庫會使用個體內的資源。

建立執行個體必須決定兩個重要選項:「執行個體設定」與「節點數」。這兩個選項會決定執行個體的供應資源與儲存空間資源的位置和數量。您的設定選項在建立執行個體後就無法修改,但是可以在日後視需要變更節點數。

執行個體設定

執行個體設定會定義該執行個體中資料庫的地理位置與複製功能。在進行建立作業時,您必須選擇將執行個體設定為「地區性」(所有資源均保存在單一 GCP 地區) 或「多地區」(資源分佈在多個地區)。您可以透過選取執行個體設定來完成這項選擇,此設定將會決定該執行個體的資料儲存位置。以下提供更詳細的地區性和多地區設定說明。

節點數

除了選擇資料的儲存位置外,在建立執行個體時您也必須選擇節點數,也就是要分配給該執行個體的節點數量。您選擇的節點數會決定該執行個體的供應資源量與儲存空間資源量,這些資源可供資料庫使用。

每個節點最多可提供 2 TiB 的儲存空間。節點針對讀取與寫入作業所提供的最高總處理量,需視執行個體設定、結構定義及資料集特性而定。詳情請參閱地區性設定效能多地區設定效能兩節。

建立執行個體後,您可以在日後變更執行個體的節點數。如要變更節點的數量,您可以透過 Google Cloud Platform 主控台的 Cloud Spanner 頁面,或是使用 gcloud 指令列工具

Cloud Spanner 並沒有暫停模式。Cloud Spanner 節點為專屬資源,即使您沒有執行工作負載,Cloud Spanner 節點也會頻繁執行背景工作以最佳化和保護您的資料。

節點與備用資源

如果您需要擴充執行個體的供應與儲存空間資源,請將更多節點加入該執行個體。提醒您,新增節點並不會增加備用資源的數量 (該數量在指定的設定中為固定值),而是增加執行個體中每個備用資源所擁有的資源。新增節點可以向每個備用資源提供更多 CPU 和 RAM,進而增加備用資源的總處理量,也就是每秒可以執行更多的讀取和寫入作業。實際上,在執行個體的每個備用資源中,Cloud Spanner 伺服器數量與執行個體的節點數是相同的。因此,將執行個體的節點數乘以執行個體中的備用資源數量,即可得到 Cloud Spanner 執行個體中的伺服器總數量。

地區性設定

北美洲、南美洲、歐洲、亞洲與澳洲的多個位置都提供 Google Cloud Platform 服務。如果您的使用者和服務皆位在單一地區,請選擇地區性執行個體設定,以獲得最低的讀取和寫入延遲時間。

可用的設定

Cloud Spanner 提供以下的地區性執行個體設定:

地區名稱 地區說明
美洲
northamerica-northeast1 蒙特婁
us-central1 愛荷華州
us-east1 南卡羅來納州
us-east4 北維吉尼亞州
us-west1 奧勒岡州
us-west2 洛杉磯
歐洲
europe-north1 芬蘭
europe-west1 比利時
europe-west4 荷蘭
亞太地區
asia-south1 孟買
asia-east1 台灣
asia-northeast1 東京
asia-southeast1 新加坡

在所有的地區性設定中,Cloud Spanner 都會保留 3 個讀取/寫入備用資源,每個備用資源皆會位於該地區中不同的 Google Cloud Platform 供應區域。針對處理讀取/寫入和唯讀要求的作業資料庫,每個讀取/寫入備用資源皆含有這類資料庫的完整複本。Cloud Spanner 使用不同區域中的備用資源,以便在單一區域發生故障時,資料庫仍然可供使用。

複製功能

地區性設定包含 3 個讀取/寫入備用資源,每一個都可以投票。

Cloud Spanner 複製功能一文所述,每個 Cloud Spanner 變異作業都需要由多數投票備用資源組成的寫入仲裁。寫入仲裁是由地區性設定中三個備用資源的其中兩個組成。

最佳做法

為了達到最佳效能,我們建議您:

  • 按照結構定義設計最佳做法一文的說明進行設定。
  • 將重要的運算資源存放在與 Cloud Spanner 執行個體相同的地區中。
  • 佈建足夠的 Cloud Spanner 節點,將整體 CPU 使用率維持在 75% 以下。

效能

當您按照上述說明的最佳做法進行設定時,每個 Cloud Spanner 節點最多可提供每秒 10,000 個查詢 (QPS) 的讀取作業,以及 2,000 QPS 的寫入作業 (以每列 1 KB 資料寫入單一資料列)。

多地區設定

如上所述,Cloud Spanner 地區性設定會在單一地區的多個區域之間複製資料。然而,如果應用程式經常需要讀取儲存在多個地理位置的資料 (例如提供資料給北美與亞洲地區的使用者),或是如果寫入作業的來源與讀取作業的位置不同 (例如您在北美有大量的寫入工作負載,但在歐洲則有大量讀取工作負載),則地區性設定可能不是最佳設定。

多地區設定可讓您不只是複製多個區域的資料庫資料,還可以依照執行個體設定的定義,複製不同地區中多個區域的資料。這些額外的備用資源讓您能夠在延遲時間極短的情況下,從設定的地區中或鄰近的多個位置讀取資料。不過採用多地區設定仍有好有壞,因為在這項設定中,仲裁 (讀取/寫入) 備用資源會分散在一個以上的地區中,所以當這些備用資源互相通訊以對寫入作業進行投票時,就會產生額外的網路延遲時間。換句話說,多地區設定可使您的應用程式在更多位置中進行更快速的讀取作業,但代價是寫入延遲時間會略為增加。

可用的設定

單一洲

設定名稱 設定位置 預設主要地區 其他讀取/寫入地區 唯讀地區
nam3 北美 us-east4 us-east1
nam6 北美 us-central1 us-east1 us-west1
us-west2
eur3 歐盟 europe-west1 europe-west4

三大洲

設定名稱 設定位置 預設主要地區 其他讀取/寫入地區 唯讀地區
nam-eur-asia1 北美、歐洲和亞洲 us-central1 us-central2
(奧克拉荷馬州,不公開的 GCP 地區)
europe-west1
asia-east1

優點

多地區執行個體提供以下主要優點:

  • 99.999% 可用性:可用性程度高於 Cloud Spanner 地區性設定提供的 99.99% 可用性。

  • 資料分佈:Cloud Spanner 會自動在地區之間複製資料,並提供同步一致性保證。這可讓資料儲存在使用的位置,進而減少延遲時間並改善使用者體驗。

  • 外部一致性:即使 Cloud Spanner 會在多個距離較遠的地理位置上執行複製作業,您仍可將 Cloud Spanner 視為在單一機器上執行的資料庫來使用這項產品。系統保證交易可以序列化,且資料庫中的交易順序與用戶端觀察到的交易修訂順序相同。外部一致性的保證程度高於「同步一致性」,這項保證是由其他產品提供。如要進一步瞭解這個屬性,請參閱 TrueTime 與外部一致性

複製功能

每個多地區設定都含有兩個指定為讀取/寫入地區的地區,且這兩個地區均包含兩個讀取/寫入備用資源。其中一個讀取/寫入地區指定為「預設主要地區」,代表該地區含有資料庫的主要備用資源。Cloud Spanner 也會將見證備用資源存放在稱為見證地區的第三地區。

每次用戶端發出資料庫變異作業時,就會形成寫入仲裁,其中包含一個預設主要地區的備用資源,以及其他四個投票備用資源中的任兩個備用資源 (仲裁可以由構成設定的兩個或三個地區中的備用資源形成,視其他哪些備用資源會參與投票而定)。除了這 5 個投票備用資源外,設定也可以擁有提供低延遲讀取的唯讀備用資源。唯讀備用資源所在的地區稱為唯讀地區

一般而言,多地區設定中的投票地區在地理位置上會很接近 (相距不超過一千英里),以便形成能快速寫入的低延遲仲裁 (詳情請參閱為什麼使用唯讀和見證備用資源? )。然而,這些地區之間的距離 (通常至少有幾百英里) 仍足以避免發生協調失敗。

下節會詳細說明每一種地區類型,並提供視情況分配寫入和讀取工作負載的指南。

地區類型

讀取/寫入地區

如上所述,每個多地區設定都含有兩個讀取/寫入地區,且這兩個地區均包含兩個讀取/寫入備用資源。其中一個讀取/寫入地區會指定為存放主要備用資源的預設主要地區。在所有備用資源都可使用的正常情況下,由於預設主要地區包含主要備用資源,因此也是首先執行寫入作業的地區。如果主要備用資源發生故障,預設主要地區的其他備用資源會自動成為主要備用資源。事實上,主要備用資源會自行檢查健康狀態,如果偵測到不健康的狀態,就會先行放棄主要備用資源的資格。

第二個讀取/寫入地區包含有資格成為主要備用資源的其他備用資源。萬一預設主要地區發生遺失情況,系統會從第二個讀取/寫入地區選擇新的主要備用資源。

唯讀地區

唯讀地區含有唯讀備用資源,可對位於讀取/寫入地區以外的用戶端提供低延遲讀取。

見證地區

見證地區含有見證備用資源,用來對寫入作業進行投票。在讀取/寫入地區無法使用的情況下,見證地區便至關重要。

最佳做法

為了達到最佳效能,我們建議您:

  • 按照結構定義設計最佳做法一文的說明進行設定。
  • 如要將寫入延遲最佳化,請將密集寫入工作負載的運算資源放置在預設主要地區內或臨近位置。
  • 如要將預設主要地區以外的讀取效能最佳化,請至少使用 15 秒的過時程度。
  • 如要避免工作負載依賴單一地區,請將重要的運算資源至少放置在兩個地區。
  • 佈建足夠的 Cloud Spanner 節點,將每個地區的整體 CPU 使用率維持在 45% 以下。

效能

每個 Cloud Spanner 設定的效能特性會略有不同,視複製拓撲而定。

當您按照上述說明的最佳做法進行設定時,每個 Cloud Spanner 節點都可提供下列的效能約略值:

多地區設定 最高讀取數約略值 (每個地區的 QPS) 最高寫入數約略值 (QPS 總計)
nam3 7,000 1,800
nam-eur-asia1 7,000 1,000

請注意,每個地區都會提供讀取指南 (因為讀取作業可從任何地方提供),而寫入指南則適用於整個設定。寫入指南假設您是以每列 1 KB 的資料量寫入單一資料列。

優缺點:地區性與多地區設定

設定 可用性 延遲時間 費用 資料位置
地區性 99.99% 在該地區內提供較低的寫入延遲時間。 費用較低;請參閱定價 啟用地理資料管理。
多地區 99.999% 在多個地理地區內提供較低的讀取延遲時間。 費用較高;請參閱定價 將資料分佈到設定中的多個地區。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Spanner 說明文件