Sistemas de procesamiento de transacciones
Enviado por lizethcs • 26 de Agosto de 2017 • Reseña • 1.363 Palabras (6 Páginas) • 372 Visitas
Sistemas de procesamiento de transacciones
Para aclarar nuestra discusión, concentrémonos en las aplicaciones de base de datos. En la práctica Las operaciones en una base de datos se realizan generalmente en forma de transacciones.
La programación mediante transacciones requiere primitivas especiales que deben ser Suministrada por el sistema distribuido subyacente o por el sistema de tiempo de ejecución del lenguaje.
Ejemplos típicos de primitivas de transacción se muestran en la Fig. 1-8. La lista exacta
De primitivas depende de qué tipos de objetos se están utilizando en la transacción (Gray y Reuter, 1993). En un sistema de correo, puede haber primitivas para enviar, Recibir y reenviar correo.
En un sistema de contabilidad, podrían ser muy diferentes READ y WRITE son ejemplos típicos, sin embargo. Declaraciones ordinarias, procedimiento Llamadas, etc., también se permiten dentro de una transacción. En particular, mencionamos Llamadas de procedimiento remoto (RPC), es decir, llamadas de procedimiento a servidores remotos, son A menudo también encapsulados en una transacción, dando lugar a lo que se conoce como transaccional RPC. Discutimos RPCs ampliamente en el Cap. 4.
[pic 1]
BEGIN_ TRANSACTION y END_TRANSACTION se utilizan para delimitar el
Alcance de una transacción. Las operaciones entre ellos forman el cuerpo de la transacción.
La característica de una transacción es cualquiera de estas operaciones Se ejecutan o no se ejecutan. Pueden ser llamadas: sistema, procedimientos de biblioteca, O en un lenguaje, dependiendo de la implementación. Esta propiedad de todo o nada de las transacciones es una de las cuatro características Propias que las transacciones tienen. Más específicamente, las transacciones son:
1. Atómica: Para el mundo exterior, la transacción sucede de forma indivisible.
2. Consistente: La transacción no infringe las invariantes del sistema.
3. Aislado: Las transacciones concurrentes no interfieren entre sí.
4. Durable: Una vez que una transacción se compromete, los cambios son permanentes.
Estas propiedades son a menudo referidas por sus letras iniciales: ACID.
La primera propiedad clave expuesta por todas las transacciones es que son atómicas. Esta propiedad asegura que cada transacción suceda completamente o no en Todo, y si sucede, sucede en una sola acción indivisible, instantánea. Mientras una transacción está en progreso, otros procesos (sean o no ellos mismos Involucrados en transacciones) no pueden ver ninguno de los estados intermedios.
La segunda propiedad dice que son consistentes. Lo que esto significa es que si El sistema tiene ciertos invariantes que deben mantenerse siempre, si se sostuvieron antes de la Transacción, que celebrará después también, Por ejemplo, En un sistema bancario, una Una invariante clave es la ley de la conservación del dinero. Después de cada transferencia interna, la Cantidad de dinero en el banco debe ser la misma que era antes de la transferencia, pero Por un breve momento durante la transacción, este invariante puede ser violado. La violación No es visible fuera de la transacción, sin embargo. La tercera propiedad dice que las transacciones son aisladas o serializables. Lo que
Significa que si dos o más transacciones se ejecutan al mismo tiempo, A cada uno de ellos y a otros procesos, el resultado final parece que todas las transacciones ian Secuencialmente en algún orden (dependiente del sistema).
La cuarta propiedad dice que las transacciones son duraderas. Se refiere al hecho de
Que una vez que una transacción se compromete, pase lo que pase, la transacción continúa
Y los resultados se convierten en permanentes. Ningún fallo después del commit puede deshacer los Resultados o hacer que se pierdan. (La durabilidad se discute ampliamente en el capítulo 8.)
Hasta el momento, las transacciones se han definido en una sola base de datos. Una transacción anidada Se construye a partir de una serie de subtransacciones, como se muestra en la Fig. 1-9.
La transacción de nivel superior puede forzar a los niños que corren en paralelo entre sí, En diferentes máquinas, para obtener rendimiento o simplificar la programación. Cada uno de Estos niños también pueden ejecutar una o más subtransacciones, o fork off su propio niños.
[pic 2]
Las subtransacciones dan lugar a un problema sutil, pero importante. Imagine que una transacción inicia varias subtransacciones en paralelo, y una de ellas se compromete.
Haciendo visibles sus resultados para la transacción principal. Después de más cálculos, el
Padre aborta, restaurando el sistema entero al estado que tenía antes del nivel superior
Transacción iniciada. En consecuencia, los resultados de la subtransacción que se comprometieron deben ser deshechos. Por lo tanto, la permanencia mencionada anteriormente sólo se aplica a las transacciones de nivel superior. Dado que las transacciones pueden anidarse arbitrariamente profundamente, se necesita una administración considerable para hacer todo bien. Sin embargo, la semántica es clara. Cuando se inicia cualquier transacción o subtransacción, se le da conceptualmente una copia privada de todos los datos de todo el sistema para que éste pueda manipularlo a su antojo. Si aborta, su universo privado desaparece, como si nunca hubiera existido. Si se compromete, su universo privado reemplaza el universo de los padres. Por lo tanto, si una subtransacción se compromete y, posteriormente, una Nueva Subtransacción empieza , la segunda ve los resultados producidos por la primera.
...