ReadWrite(mapping=None, *, ignore_unknown_fields=False, **kwargs)
Message type to initiate a read-write transaction. Currently this transaction type has no options.
Attributes |
|
---|---|
Name | Description |
read_lock_mode |
google.cloud.spanner_v1.types.TransactionOptions.ReadWrite.ReadLockMode
Read lock mode for the transaction. |
multiplexed_session_previous_transaction_id |
bytes
Optional. Clients should pass the transaction ID of the previous transaction attempt that was aborted if this transaction is being executed on a multiplexed session. |
Classes
ReadLockMode
ReadLockMode(value)
ReadLockMode
is used to set the read lock mode for read-write
transactions.
- If isolation level is
`REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.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 to validate that the data that
was served at the snapshot time is unchanged at commit
time in the following cases:
1. reads done as part of queries that use
`SELECT FOR UPDATE`
2. reads done as part of statements with a
`LOCK_SCANNED_RANGES` hint
3. reads done as part of DML statements
- At all other isolation levels, if `read_lock_mode` is
the default value, then pessimistic read locks are used.
PESSIMISTIC (1):
Pessimistic lock mode.
Read locks are acquired immediately on read. Semantics
described only applies to
`SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]`
isolation.
OPTIMISTIC (2):
Optimistic lock mode.
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][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]`
isolation.