Capítulo 7. Transacciones
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Algunos autores han afirmado que la confirmación general en dos fases es demasiado cara de soportar, debido a los problemas de rendimiento o disponibilidad que conlleva. Creemos que es mejor que los programadores de aplicaciones se ocupen de los problemas de rendimiento debidos al uso excesivo de transacciones a medida que surgen cuellos de botella, en lugar de codificar siempre en torno a la falta de transacciones.
James Corbett y otros, Spanner: La base de datos distribuida globalmente de Google (2012)
En la dura realidad de los sistemas de datos, muchas cosas pueden ir mal:
-
El software o hardware de la base de datos puede fallar en cualquier momento (incluso en medio de una operación de escritura).
-
La aplicación puede bloquearse en cualquier momento (incluso a mitad de una serie de operaciones).
-
Las interrupciones en la red pueden aislar inesperadamente la aplicación de la base de datos, o un nodo de la base de datos de otro.
-
Varios clientes pueden escribir en la base de datos al mismo tiempo, sobrescribiendo los cambios de los demás.
-
Un cliente puede leer datos que no tienen sentido porque sólo se han actualizado parcialmente.
-
Las condiciones de carrera entre clientes pueden provocar fallos sorprendentes.
Para ser ...