記憶體內層總覽

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

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

使用記憶體層的時機

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

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

記憶體內層的運作方式

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

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

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

  • 在記憶體層中取得資料:記憶體層提供讀取直通快取行為。透過您為記憶體內層設定的應用程式設定檔,資料列會連同讀取作業進入記憶體內層。如果資料列資料已位於記憶體內層,任何應用程式設定檔的寫入作業都會更新記憶體層。
  • 移除和失效政策:記憶體內層級會使用「最近最少使用 (LRU)」移除政策,並採用 15 分鐘的存留時間 (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 會從永久儲存空間讀取超過此限制的資料列。
  • 如要使用記憶體內層,Java 適用的 Bigtable 用戶端程式庫必須為 2.77.0 以上版本,或 BOM 必須為 26.80.0 以上版本。系統不支援其他用戶端程式庫。
  • 客戶自行管理的加密金鑰 (CMEK) 叢集不支援記憶體內層。

後續步驟