View a markdown version of this page

叢集快取管理 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

叢集快取管理

快取是任何資料庫 (DB) 最重要的功能之一,因為它有助於減少磁碟 I/O。最常存取的資料儲存在稱為緩衝快取的記憶體區域中。在查詢頻繁執行時,它會直接從快取而不是磁碟中擷取資料。這樣速度更快,並提供更好的可擴展性和應用程式效能。您可以使用 shared_buffers 參數來設定 PostgreSQL 快取大小。如需詳細資訊,請參閱記憶體 (PostgreSQL 文件)。

容錯移轉後,Amazon Aurora PostgreSQL 相容版本中的叢集快取管理 (CCM) 旨在提高應用程式和資料庫復原效能。在沒有 CCM 的典型容錯移轉情況下,您可能會發現暫時但顯著的效能下降。此情形會發生於容錯移轉資料庫執行個體啟動、但緩衝快取處於空的狀態時。空的快取也稱作 冷快取。資料庫執行個體必須從磁碟讀取,這比從快取讀取更慢。

實作 CCM 時,您選擇偏好的讀取器資料庫執行個體,且 CCM 不斷將其快取記憶體與主要資料庫執行個體或寫入器資料庫執行個體的快取記憶體同步。如果發生容錯移轉,則偏好讀取器資料庫執行個體將提升至新的寫入器資料庫執行個體。由於它已具有快取記憶體 (稱為暖快取),因此這可以最大限度地減少容錯移轉對應用程式效能的影響。

叢集快取管理如何運作?

容錯移轉資料庫執行個體位於與主要寫入器資料庫執行個體不同的可用區域。偏好的讀取器資料庫執行個體是優先順序容錯移轉目標,透過為其指派 tier-0 優先順序層級來指定。

注意

提取層級優先順序的值,代表容錯移轉後 Aurora 讀取器提升為寫入器資料庫執行個體的特定順序。有效的值為 0–15,0 代表最高優先順序,15 代表最低優先順序。如需有關提升層的詳細資訊,請參閱 Aurora 資料庫叢集的容錯能力。修改提升層不會導致中斷。

CCM 將快取從寫入器資料庫執行個體同步至偏好的讀取器資料庫執行個體。讀取器資料庫執行個體將目前快取的一組緩衝地址作為 Bloom 篩選條件傳送至寫入器資料庫執行個體。Bloom 篩選條件是一種機率性、記憶體高效的資料結構,用於測試元素是否為集的成員。使用 Bloom 篩選條件可防止讀取器資料庫執行個體重複將相同的緩衝地址傳送至寫入器資料庫執行個體。在寫入器資料庫執行個體接收 Bloom 篩選條件時,它會比較緩衝快取中的區塊,並將常用的緩衝傳送至讀取器資料庫執行個體。依預設,如果某緩衝的使用次數大於 3,則此緩衝視為常用。

下圖顯示 CCM 如何將寫入器資料庫執行個體的緩衝快取與偏好的讀取器資料庫執行個體同步。

在不同可用區域的 Aurora 資料庫執行個體之間設定的叢集快取管理。

如需 CCM 的詳細資訊,請參閱使用 Aurora PostgreSQL 的叢集快取管理進行容錯移轉後的快速復原 (Aurora 文件) 和 Aurora PostgreSQL 叢集快取管理簡介 (AWS 部落格文章)。如需有關如何設定 CCM 的指示,請參閱設定叢集快取管理 (Aurora 文件)。

限制

CCM 功能具有下列限制:

  • 讀取器資料庫執行個體必須具有與寫入器資料庫執行個體相同的資料庫執行個體類別類型和大小,例如 r5.2xlargedb.r5.xlarge

  • 作為 Aurora 全域資料庫一部分的 Aurora PostgreSQL 資料庫叢集不支援 CCM。

叢集快取管理的使用案例

對於某些產業 (例如零售、銀行和金融),僅僅幾毫秒的延遲就可能導致應用程式效能問題,並導致業務的重大損失。由於 CCM 透過將主要資料庫執行個體的緩衝快取持續同步至偏好的備份執行個體來協助復原應用程式和資料庫效能,因此它有助於防止與容錯移轉關聯的業務損失。