IsolationLevel is used when setting isolation_level for a
transaction.
If the value is not specified, the `SERIALIZABLE`
isolation level is used.
SERIALIZABLE (1):
All transactions appear as if they executed
in a serial order, even if some of the reads,
writes, and other operations of distinct
transactions actually occurred in parallel.
Spanner assigns commit timestamps that reflect
the order of committed transactions to implement
this property. Spanner offers a stronger
guarantee than serializability called external
consistency. For further details, please refer
to
https://cloud.google.com/spanner/docs/true-time-external-consistency#serializability.
REPEATABLE_READ (2):
All reads performed during the transaction observe a
consistent snapshot of the database, and the transaction is
only successfully committed in the absence of conflicts
between its updates and any concurrent updates that have
occurred since that snapshot. Consequently, in contrast to
`SERIALIZABLE` transactions, only write-write conflicts
are detected in snapshot transactions.
This isolation level does not support Read-only and
Partitioned DML transactions.
When `REPEATABLE_READ` is specified on a read-write
transaction, the locking semantics default to
`OPTIMISTIC`.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Class IsolationLevel (3.57.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.57.0 (latest)](/python/docs/reference/spanner/latest/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.56.0](/python/docs/reference/spanner/3.56.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.55.0](/python/docs/reference/spanner/3.55.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.54.0](/python/docs/reference/spanner/3.54.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.53.0](/python/docs/reference/spanner/3.53.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.52.0](/python/docs/reference/spanner/3.52.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.51.0](/python/docs/reference/spanner/3.51.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.50.1](/python/docs/reference/spanner/3.50.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.46.0](/python/docs/reference/spanner/3.46.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.45.0](/python/docs/reference/spanner/3.45.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.44.0](/python/docs/reference/spanner/3.44.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.43.0](/python/docs/reference/spanner/3.43.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.42.0](/python/docs/reference/spanner/3.42.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.41.0](/python/docs/reference/spanner/3.41.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.40.1](/python/docs/reference/spanner/3.40.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.39.0](/python/docs/reference/spanner/3.39.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.38.0](/python/docs/reference/spanner/3.38.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.37.0](/python/docs/reference/spanner/3.37.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.36.0](/python/docs/reference/spanner/3.36.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.35.1](/python/docs/reference/spanner/3.35.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.34.0](/python/docs/reference/spanner/3.34.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.33.0](/python/docs/reference/spanner/3.33.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.32.0](/python/docs/reference/spanner/3.32.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.31.0](/python/docs/reference/spanner/3.31.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.30.0](/python/docs/reference/spanner/3.30.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.29.0](/python/docs/reference/spanner/3.29.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.28.0](/python/docs/reference/spanner/3.28.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.27.1](/python/docs/reference/spanner/3.27.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.26.0](/python/docs/reference/spanner/3.26.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.25.0](/python/docs/reference/spanner/3.25.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.24.0](/python/docs/reference/spanner/3.24.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.23.0](/python/docs/reference/spanner/3.23.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.22.2](/python/docs/reference/spanner/3.22.2/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.21.0](/python/docs/reference/spanner/3.21.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.20.0](/python/docs/reference/spanner/3.20.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.19.0](/python/docs/reference/spanner/3.19.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.18.0](/python/docs/reference/spanner/3.18.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.17.0](/python/docs/reference/spanner/3.17.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.16.0](/python/docs/reference/spanner/3.16.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.15.1](/python/docs/reference/spanner/3.15.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.14.1](/python/docs/reference/spanner/3.14.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.13.0](/python/docs/reference/spanner/3.13.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.12.1](/python/docs/reference/spanner/3.12.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.11.1](/python/docs/reference/spanner/3.11.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.10.0](/python/docs/reference/spanner/3.10.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.9.0](/python/docs/reference/spanner/3.9.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.8.0](/python/docs/reference/spanner/3.8.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.7.0](/python/docs/reference/spanner/3.7.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.6.0](/python/docs/reference/spanner/3.6.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.5.0](/python/docs/reference/spanner/3.5.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.4.0](/python/docs/reference/spanner/3.4.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.3.0](/python/docs/reference/spanner/3.3.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.2.0](/python/docs/reference/spanner/3.2.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.1.0](/python/docs/reference/spanner/3.1.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [3.0.0](/python/docs/reference/spanner/3.0.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [2.1.1](/python/docs/reference/spanner/2.1.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [2.0.0](/python/docs/reference/spanner/2.0.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.19.3](/python/docs/reference/spanner/1.19.3/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.18.0](/python/docs/reference/spanner/1.18.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.17.1](/python/docs/reference/spanner/1.17.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.16.0](/python/docs/reference/spanner/1.16.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.15.1](/python/docs/reference/spanner/1.15.1/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.14.0](/python/docs/reference/spanner/1.14.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.13.0](/python/docs/reference/spanner/1.13.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.12.0](/python/docs/reference/spanner/1.12.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.11.0](/python/docs/reference/spanner/1.11.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel)\n- [1.10.0](/python/docs/reference/spanner/1.10.0/google.cloud.spanner_v1.types.TransactionOptions.IsolationLevel) \n\n IsolationLevel(value)\n\n`IsolationLevel` is used when setting `isolation_level` for a\ntransaction. \n\n If the value is not specified, the `SERIALIZABLE`\n isolation level is used.\n SERIALIZABLE (1):\n All transactions appear as if they executed\n in a serial order, even if some of the reads,\n writes, and other operations of distinct\n transactions actually occurred in parallel.\n Spanner assigns commit timestamps that reflect\n the order of committed transactions to implement\n this property. Spanner offers a stronger\n guarantee than serializability called external\n consistency. For further details, please refer\n to\n https://cloud.google.com/spanner/docs/true-time-external-consistency#serializability.\n REPEATABLE_READ (2):\n All reads performed during the transaction observe a\n consistent snapshot of the database, and the transaction is\n only successfully committed in the absence of conflicts\n between its updates and any concurrent updates that have\n occurred since that snapshot. Consequently, in contrast to\n `SERIALIZABLE` transactions, only write-write conflicts\n are detected in snapshot transactions.\n\n This isolation level does not support Read-only and\n Partitioned DML transactions.\n\n When `REPEATABLE_READ` is specified on a read-write\n transaction, the locking semantics default to\n `OPTIMISTIC`."]]