記憶體內層總覽

記憶體內層級是叢集層級設定,使用專用節點。閱讀本頁面之前,請先瞭解執行個體、叢集和節點。此外,我們也建議您詳閱限制

Bigtable 記憶體內層是 Bigtable 節點的一部分,可做為整合式記憶體層,根據存取模式和效能需求,透過單一 API 實現無縫且經濟實惠的資料分層。Bigtable 記憶體內層使用遠端直接記憶體存取 (RDMA),可大幅縮短回應時間、減輕資源使用率不均的情形,並確保延遲時間敏感資料享有高處理量。詳情請參閱「瞭解效能」。

使用記憶體層的時機

建議您為下列用途啟用記憶體內層:

  • 延遲時間須小於 1 毫秒:工作負載的讀取延遲時間須小於 1 毫秒,通常會透過自行管理的快取解決方案,將資料庫設為前端。
  • 高處理量點讀取:讀取流量高的應用程式,對特定資料子集的處理量有要求。
  • 熱點緩解:高處理量工作負載,可能包含特定資料列鍵的流量尖峰或熱點。
  • 成本最佳化:您想將高讀取量卸載至更具成本效益的記憶體層,藉此減少 Bigtable 節點數量。

記憶體內層的運作方式

混合型儲存空間節點提供記憶體內層支援。這些專用節點擴充了 Bigtable 的運算和儲存空間分離功能,納入可垂直擴充處理量的記憶體層。Bigtable 最多可能需要 30 分鐘,才能佈建專用的記憶體內層節點。在這段期間,Bigtable 會繼續從永久儲存空間提供流量。

您可以在叢集層級啟用記憶體內層

記憶體內層的運作方式如下:

  • 在記憶體層中取得資料:記憶體層提供讀取直通快取行為。透過您為記憶體內層設定的應用程式設定檔,讀取作業會將資料列移至記憶體內層。如果資料列資料已位於記憶體內層,任何應用程式設定檔的寫入作業都會更新記憶體層。
  • 逐出和失效政策:記憶體內層級會使用「最近最少使用」(LRU) 逐出政策,並套用存留時間 (TTL) 失效政策,盡量提高記憶體內層級的命中率。
  • Negative caching:記憶體內層會記住資源是否在一段時間內遺失,以避免後端過載。
  • 安全性:記憶體內層支援靜態資料加密和傳輸中加密 (TLS)。
  • 複製:在多叢集執行個體中,不同叢集的記憶體層級不會同步。因為每個記憶體層級會根據收到的讀取流量,獨立判斷要將哪些資料載入記憶體,所以不同叢集的記憶體層級可能持有不同的資料列鍵。Bigtable 會從本機叢集的 SSD 層將資料載入記憶體。寫入資料列的作業最終會更新所有存在該資料列的記憶體層級,並遵循標準 Bigtable 複寫模型,確保最終一致性。
  • 自動垂直調度資源:記憶體內層支援節點層級的自動垂直調度資源,可與 Bigtable 自動調度資源功能搭配使用。

記憶體內層經過最佳化,可高效存取目前資料。為維持這項效能,記憶體層中只會保留資料列的最新時間戳記版本。要求較早版本的資料 (又稱為歷史儲存格) 時,系統會自動略過記憶體層,並從永久儲存空間提供資料。

資料一致性

Bigtable 可確保記憶體內層資料與 SSD 或不常存取的儲存空間層中的永久資料一致。這種混合式架構可讓 Bigtable 在所有儲存層級提供一致的儲存模型,因此無論資料實際位於 RAM 或永久儲存空間,您都能透過相同的語意介面存取資料。啟用 Bigtable 記憶體內層後,您可以在叢集層級保留讀取後寫入一致性。

垂直資源調度

啟用記憶體內層後,每個節點都能使用垂直資源調度,修改記憶體內層的輸送量容量。每個節點都包含 8 GB 的 RAM (適用於記憶體內層),且基本容量為每秒 40,000 次讀取。為管理尖峰時段的點讀取流量,節點可以每秒 40,000 次讀取為單位自動擴充,每個節點每秒最多可達 120,000 次讀取。

這項垂直調整資源配置功能會與 Bigtable 自動調度資源整合。如果叢集中的所有節點都達到記憶體內層級容量上限,且自動調度資源功能處於啟用狀態,Bigtable 就會自動調度額外節點,進一步提升記憶體內層級處理量。

節點的垂直擴充功能只適用於每秒的記憶體內層讀取作業,且無論是否啟用叢集層級的自動調度功能,這項功能都能運作。如果垂直擴充的讀取次數超過每秒 40,000 次,系統會將節點的小時費用乘以調節係數,做為計費依據。詳情請參閱定價限制

限制

以下限制適用於記憶體內層:

  • 記憶體內層需要 SSD 儲存空間。
  • 記憶體內層級僅支援單一資料列層級的點讀取作業。
  • 記憶體內層不會提供資料掃描服務,也不支援 SQL 查詢。
  • 記憶體內層應用程式設定檔僅支援單一叢集轉送。
  • 記憶體內層會將資料列大小限制為每個資料列索引鍵 1 MiB。Bigtable 會從永久儲存空間讀取超過此限制的資料列。
  • 如要使用記憶體內層級,必須使用下列版本的 Bigtable 用戶端程式庫

    • Java 2.77.0 以上版本
    • BOM 26.80.0 以上版本
    • Go 1.52.0 以上版本

    不支援其他用戶端程式庫。

  • 啟用客戶自行管理的加密金鑰 (CMEK) 的叢集不支援記憶體內層。

  • 每個叢集最多只能有 10 個記憶體內層節點。

後續步驟