Firebird y las transacciones "Repeateable read"

10:08 0 Comments

Una caracteristica de las transacciones es el aislamiento entre ellas. Según esto una transacción de no deberia interferir con las demás, pero a fin de evitar la total serialización se ofrecen varios niveles de aislamiento, cada una con un balance diferente entre aislamiento y rendimiento.

El nivel "Repeateable read" es uno de ellos, su mecanismo es el siguiente: Al iniciar una transacción se captura el estado actual de la base de datos y se trabaja sobre este.

Este nivel ofrece una buena relación entre aislamiento y rendimiento, pero hay que tener en cuenta algo muy importante: si se inicia una transacción cuando otra ha realizado un update sobre algun de elemento, sin haber realizado el commit, en ese caso cualquier operacion de update sobre ese elemento antes de que la otra transacción haga el commit provocará un deadlock.

0 comentarios: