Reference documentation and code samples for the Cloud Spanner V1 API module Google::Cloud::Spanner::V1::TransactionOptions::IsolationLevel.
IsolationLevel is used when setting isolation_level for a transaction.
Constants
ISOLATION_LEVEL_UNSPECIFIED
value: 0 Default value.
If the value is not specified, the SERIALIZABLE isolation level is
used.
SERIALIZABLE
value: 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
value: 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-08-28 UTC."],[],[],null,["# Cloud Spanner V1 API - Module Google::Cloud::Spanner::V1::TransactionOptions::IsolationLevel (v1.10.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.10.0 (latest)](/ruby/docs/reference/google-cloud-spanner-v1/latest/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.9.1](/ruby/docs/reference/google-cloud-spanner-v1/1.9.1/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.8.0](/ruby/docs/reference/google-cloud-spanner-v1/1.8.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.7.1](/ruby/docs/reference/google-cloud-spanner-v1/1.7.1/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.6.0](/ruby/docs/reference/google-cloud-spanner-v1/1.6.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.5.0](/ruby/docs/reference/google-cloud-spanner-v1/1.5.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.4.0](/ruby/docs/reference/google-cloud-spanner-v1/1.4.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.3.0](/ruby/docs/reference/google-cloud-spanner-v1/1.3.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.2.0](/ruby/docs/reference/google-cloud-spanner-v1/1.2.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.1.0](/ruby/docs/reference/google-cloud-spanner-v1/1.1.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [1.0.2](/ruby/docs/reference/google-cloud-spanner-v1/1.0.2/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.27.0](/ruby/docs/reference/google-cloud-spanner-v1/0.27.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.26.0](/ruby/docs/reference/google-cloud-spanner-v1/0.26.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.25.0](/ruby/docs/reference/google-cloud-spanner-v1/0.25.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.24.0](/ruby/docs/reference/google-cloud-spanner-v1/0.24.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.23.0](/ruby/docs/reference/google-cloud-spanner-v1/0.23.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.22.2](/ruby/docs/reference/google-cloud-spanner-v1/0.22.2/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.21.0](/ruby/docs/reference/google-cloud-spanner-v1/0.21.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.20.1](/ruby/docs/reference/google-cloud-spanner-v1/0.20.1/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.19.0](/ruby/docs/reference/google-cloud-spanner-v1/0.19.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.18.0](/ruby/docs/reference/google-cloud-spanner-v1/0.18.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.17.0](/ruby/docs/reference/google-cloud-spanner-v1/0.17.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.16.0](/ruby/docs/reference/google-cloud-spanner-v1/0.16.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.15.1](/ruby/docs/reference/google-cloud-spanner-v1/0.15.1/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.14.1](/ruby/docs/reference/google-cloud-spanner-v1/0.14.1/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.13.0](/ruby/docs/reference/google-cloud-spanner-v1/0.13.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.12.0](/ruby/docs/reference/google-cloud-spanner-v1/0.12.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.11.0](/ruby/docs/reference/google-cloud-spanner-v1/0.11.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.10.0](/ruby/docs/reference/google-cloud-spanner-v1/0.10.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.9.0](/ruby/docs/reference/google-cloud-spanner-v1/0.9.0/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.8.1](/ruby/docs/reference/google-cloud-spanner-v1/0.8.1/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel)\n- [0.7.4](/ruby/docs/reference/google-cloud-spanner-v1/0.7.4/Google-Cloud-Spanner-V1-TransactionOptions-IsolationLevel) \nReference documentation and code samples for the Cloud Spanner V1 API module Google::Cloud::Spanner::V1::TransactionOptions::IsolationLevel.\n\n`IsolationLevel` is used when setting `isolation_level` for a transaction.\n\nConstants\n---------\n\n### ISOLATION_LEVEL_UNSPECIFIED\n\n**value:** 0 \nDefault value.\n\n\n\u003cbr /\u003e\n\nIf the value is not specified, the `SERIALIZABLE` isolation level is\nused.\n\n### SERIALIZABLE\n\n**value:** 1 \nAll transactions appear as if they executed in a serial order, even if\nsome of the reads, writes, and other operations of distinct transactions\nactually occurred in parallel. Spanner assigns commit timestamps that\nreflect the order of committed transactions to implement this property.\nSpanner offers a stronger guarantee than serializability called external\nconsistency. For further details, please refer to\n\u003chttps://cloud.google.com/spanner/docs/true-time-external-consistency#serializability\u003e.\n\n### REPEATABLE_READ\n\n**value:** 2 \nAll reads performed during the transaction observe a consistent snapshot\nof the database, and the transaction is only successfully committed in\nthe absence of conflicts between its updates and any concurrent updates\nthat have occurred since that snapshot. Consequently, in contrast to\n`SERIALIZABLE` transactions, only write-write conflicts are detected in\nsnapshot transactions.\n\n\nThis isolation level does not support Read-only and Partitioned DML\ntransactions.\n\n\u003cbr /\u003e\n\nWhen `REPEATABLE_READ` is specified on a read-write transaction, the\nlocking semantics default to `OPTIMISTIC`."]]