Class ReadWrite (3.58.0)

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.