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 asegura que todas las operaciones de lectura de una transacción vean una captura coherente de la base de datos tal como estaba al inicio de la transacción. En Spanner, este nivel de aislamiento se implementa mediante una técnica que también se conoce como aislamiento de instantáneas. Este enfoque es útil en situaciones de alta simultaneidad de lectura y escritura en las que numerosas transacciones leen datos que otras transacciones podrían estar modificando. Al usar una instantánea fija, la lectura repetible evita los efectos en el rendimiento del nivel de aislamiento serializable, que es más riguroso. Las lecturas se pueden ejecutar sin adquirir bloqueos y sin bloquear las escrituras simultáneas, lo que puede dar lugar a menos transacciones abortadas que deban volver a intentarse debido a conflictos de serialización. Para obtener más información, consulta la descripción general de los niveles de aislamiento.
Definir el nivel de aislamiento
Puedes definir el nivel de aislamiento en las transacciones de lectura y escritura a nivel de transacción mediante los siguientes métodos:
Bibliotecas de cliente
Go
Java
Node.js
Python
REST
Puedes usar la API REST TransactionOptions.isolation_level
para definir el nivel de aislamiento en las transacciones de lectura y escritura a nivel de transacción. Las opciones válidas son TransactionOptions.SERIALIZABLE
y TransactionOptions.REPEATABLE_READ
. De forma predeterminada, Spanner define el nivel de aislamiento en aislamiento serializable.
RPC
Casos prácticos no admitidos
- Solo puedes usar el aislamiento de lectura repetible en transacciones de lectura y escritura. Spanner devuelve un error si se define 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.
Siguientes pasos
Consulta cómo 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.