Aurora DSQL 中的並行控制 - Amazon Aurora DSQL

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

Aurora DSQL 中的並行控制

並行允許多個工作階段同時存取和修改資料,而不會影響資料完整性和一致性。Aurora DSQL 提供 PostgreSQL 相容性,同時實作現代、無鎖定的並行控制機制。它透過快照隔離來維持完整的 ACID 合規,以確保資料一致性和可靠性。

Aurora DSQL 的關鍵優勢是其無鎖定架構,可消除常見的資料庫效能瓶頸。Aurora DSQL 可防止緩慢的交易封鎖其他操作,並消除死結的風險。這種方法讓 Aurora DSQL 特別適用於效能和可擴展性至關重要的高輸送量應用程式。

交易衝突

Aurora DSQL 使用樂觀並行控制 (OCC),其運作方式與傳統的鎖定型系統不同。OCC 不會使用鎖定,而是評估遞交時的衝突。當多個交易在更新相同資料列時發生衝突時,Aurora DSQL 會管理交易,如下所示:

  • 具有最早遞交時間的交易由 Aurora DSQL 處理。

  • 衝突的交易會收到 PostgreSQL 序列化錯誤,表示需要重試。

設計您的應用程式以實作重試邏輯來處理衝突。理想的設計模式是等冪的,盡可能讓交易重試成為第一個方法。建議的邏輯類似於標準 PostgreSQL 鎖定逾時或死鎖情況下的中止和重試邏輯。不過,OCC 需要您的應用程式更頻繁地執行此邏輯。

最佳化交易效能的指導方針

若要最佳化效能,請將單一金鑰或小型金鑰範圍上的高度爭用降至最低。若要達成此目標,請使用下列準則設計您的結構描述,將更新分散至叢集金鑰範圍:

  • 為您的資料表選擇隨機主索引鍵。

  • 避免增加單一金鑰爭用率的模式。即使交易量增加,此方法也能確保最佳效能。