記憶體內層總覽

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

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

使用記憶體內建功能的時機

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

  • 延遲時間須小於 1 毫秒:工作負載的讀取延遲時間須小於 1 毫秒,通常會透過自行管理的快取解決方案來處理資料庫。
  • 高處理量點讀取:應用程式的讀取流量高,且特定資料子集有處理量需求。
  • 熱點緩解:高處理量工作負載,可能包含特定資料列鍵的流量尖峰或熱點。
  • 成本最佳化:您想將高讀取量卸載至更符合成本效益的記憶體層,藉此減少 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) 集群不支援記憶體內作業。

後續步驟