Posted On: May 17, 2022

Amazon Redshift has launched support for Snapshot Isolation for concurrent transactions. Amazon Redshift prevents dirty reads, non-repeatable reads, and phantom reads according to the SQL standards. The two options that Amazon Redshift offers to serialize transactions are SERIALIZABLE and SNAPSHOT ISOLATION. The SERIALIZABLE option will implement strict serializability, where a transaction could fail if the result could not be mapped to a serial order of the concurrently running transactions. The SNAPSHOT ISOLATION option will allow higher concurrency, where concurrent modifications to different rows in the same table would complete successfully. Under both options, transactions will continue to operate on the latest committed version, or a snapshot, of the database.

Amazon Redshift provisioned clusters use SERIALIZABLE as the default option. Amazon Redshift serverless data warehouses use SNAPSHOT ISOLATION as the default option. This can be changed using the Amazon Redshift CREATE or ALTER DATABASE ISOLATION LEVEL SQL commands. SNAPSHOT ISOLATION is available in all commercial AWS Regions where Amazon Redshift is available. To learn more about how to use Redshift isolation levels, please refer to the Amazon Redshift documentation.