En esta página, se describe cómo usar el aislamiento de lectura repetible en Spanner.
La lectura repetible es un nivel de aislamiento que garantiza que todas las operaciones de lectura dentro de una transacción vean una instantánea coherente de la base de datos tal como existía al comienzo de la transacción. En Spanner, este nivel de aislamiento se implementa con una técnica que también se conoce comúnmente como aislamiento de instantáneas. Este enfoque es beneficioso en situaciones de alta simultaneidad de lectura y escritura en las que numerosas transacciones leen datos que otras transacciones podrían estar modificando. Con el uso de una instantánea fija, la lectura repetible evita los impactos en el rendimiento del nivel de aislamiento serializable más riguroso. Las lecturas se pueden ejecutar sin adquirir bloqueos y sin bloquear las escrituras simultáneas, lo que genera potencialmente menos transacciones anuladas que podrían necesitar reintentarse debido a conflictos de serialización. Para obtener más información, consulta Descripción general del nivel de aislamiento.
Cómo establecer el nivel de aislamiento
Puedes establecer el nivel de aislamiento en las transacciones de lectura y escritura a nivel de la transacción con los siguientes métodos:
Bibliotecas cliente
Go
Java
Node.js
Python
REST
Puedes usar la API de REST de TransactionOptions.isolation_level
para establecer el nivel de aislamiento en las transacciones de lectura y escritura a nivel de la transacción. Las opciones válidas son TransactionOptions.SERIALIZABLE
y TransactionOptions.REPEATABLE_READ
. De forma predeterminada, Spanner establece el nivel de aislamiento en aislamiento serializable.
RPC
Casos de uso no admitidos
- Solo puedes usar el aislamiento de lectura repetible en transacciones de lectura y escritura. Spanner devuelve un error si configuras este nivel de aislamiento en una transacción de solo lectura. Todas las transacciones de solo lectura operan en una instantánea fija y no requieren bloqueos.
- No puedes usar el aislamiento de lectura repetible para modificar tablas que tengan índices de búsqueda de texto completo definidos en sus columnas.
¿Qué sigue?
Obtén más información sobre los niveles de aislamiento.
Obtén más información para usar SELECT FOR UPDATE en el aislamiento de lectura repetible.
Para obtener más información sobre la serialización y la coherencia externa de Spanner, consulta TrueTime y coherencia externa.