Locks for reads within the transaction are not acquired on read.
Instead the locks are acquired on a commit to validate that
read/queried data has not changed since the transaction started.
Semantics described only applies to SERIALIZABLE isolation.
Pessimistic
Pessimistic lock mode.
Read locks are acquired immediately on read.
Semantics described only applies to SERIALIZABLE isolation.
Unspecified
Default value.
If isolation level is REPEATABLE_READ, then it is an error to
specify read_lock_mode. Locking semantics default to OPTIMISTIC.
No validation checks are done for reads, except for:
reads done as part of queries that use SELECT FOR UPDATE
reads done as part of statements with a LOCK_SCANNED_RANGES
hint
reads done as part of DML statements
to validate that the data that was served at the snapshot time is
unchanged at commit time.
At all other isolation levels, if read_lock_mode is the default
value, then pessimistic read lock is used.
[[["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-05-02 UTC."],[[["This page provides reference documentation for the `ReadLockMode` enum within the Google Cloud Spanner v1 API, specifically for .NET development."],["The `ReadLockMode` enum is used to determine how read locks are handled during read-write transactions in Google Cloud Spanner."],["The latest version documented is `5.0.0-beta05`, and the documentation includes many older versions as far back as version `3.5.0` for the `ReadLockMode` enum."],["The enum has three possible values: `Optimistic`, `Pessimistic`, and `Unspecified`, each controlling the timing and behavior of lock acquisition during transactions."],["`Pessimistic` locking acquires locks immediately on read, `Optimistic` locking acquires locks upon commit, and `Unspecified` defaults to pessimistic locking."]]],[]]