Locking
RedShift 中的顯式鎖
我是 AWS Redshift 的新手,我想知道如何實施我的案例。
我有一個 Redshift 表,它有很多插入/選擇。在某些情況下,我需要從該表中刪除一些數據。我不希望我的刪除影響其他寫入和讀取。
有人可以建議在 Redshift 中實現我的案例的最佳鎖定模式是什麼。
我不想以掛鎖和一些鎖掛在我的應用程序中而告終。
我試過沒有鎖,我觀察到以下違規行為:
Serializable isolation violation on table - 156300, transactions forming the cycle are: 6416378, 6416913 (pid:3770);
我也瀏覽了 Redshift cxplicit 鎖,但找不到任何官方文件。
我知道 Redshift 是 PostgreSQL 的包裝器,所以我可以使用該文件來實現嗎?
假設它在這種情況下像 PostgreSQL 一樣工作:
這是您收到的序列化錯誤,因為您使用的是
SERIALIZABLE
事務隔離級別。這沒什麼好擔心的,只需重複交易即可。
為了避免上述錯誤,您可以使用 LOCK 命令顯式鎖定該事務。