Procesamiento de Transacciones

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Procesamiento de Transacciones"

Transcripción

1 Procesamiento de Transacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and T. Kindberg. Contenido Definiciones Básicas Transacciones Control de Concurrencia:Problemas Equivalencia Secuencial Operaciones Conflictivas Contenido Mecanismos de Control de Concurrencia Control de Concurrencia a través de bloqueos Control Optimista de la Concurrencia Ordenación por marcas de tiempo 1

2 Contenido Transacciones Distribuidas Sistema Manejador de Transacciones Transacciones Planas y Anidadas Commit y Abort en un Sistema Distribuido Control de Concurrencia Por Bloqueo Optimista Marcas Temporales Contenido Recuperación de Transacciones Definiciones Las aplicaciones de BD manejan una gran cantidad de datos persistentes, es decir datos almacenados en dispositivos de memoria secundaria. Un usuario típico de una BD, realiza queries sobre los datos, como por ejemplo: cuál es el saldo actual de mi cuenta bancaria?? 2

3 Definiciones Llamaremos transacción a un requerimiento de un usuario a un manejador de Base de Datos (DBMS). Sistemas que usan BD: Bancos, líneas aéreas y otros sistemas de reservación, bases de datos estadísticas que contienen datos de la población, del tiempo, etc. Necesidad de Concurrencia En algunos sistemas no es crítico que los datos estén actualizados al instante; dichas actualizaciones pueden diferirse y hacerse en batch. Este enfoque simplifica enormemente el manejo de los datos. Por ejemplo El Banco Santander a finales de los noventa. Se hacían las actualizaciones de noche La tendencia actual en los bancos es la de mantener información actualizada al instante. Necesidad de Concurrencia En algunos sistemas las actualizaciones no pueden diferirse: por ejemplo un sistema de reserva de líneas aéreas o de compra de entradas al teatro. Se necesita saber inmediatamente si se ha podido reservar el asiento. En este tipo de aplicaciones pueden llegar requerimientos simultáneos de muchos clientes: Necesidad de concurrencia y de los problemas que esto acarrea. 3

4 Transacciones Una transacción es una colección de acciones que hacen transformaciones de los estados de un sistema preservando la consistencia del sistema Una transacción indica una operación atómica exitosa, tal como por ejemplo la transferencia de dinero de una cuenta a otra. Trasferencia: 1) Débito, 2) Crédito Ya sea una operación compuesta o no. Operaciones Atómicas Cuando la operación termina exitosamente todos sus efectos visibles se hacen permanentes (Propiedad de Durabilidad). Si falla o es abortada deliberadamente, no tiene ningún efecto (Todo_o_Nada) Aislamiento: cada transacción debe ser ejecutada sin interferencias de otras transacciones, es decir, los resultados intermedios de una transacción no deben ser visibles a otras transacciones. Operaciones Atómicas Atomicidad ante fallas: los efectos son atómicos aun cuando el servidor falla. Los datos que se mantienen en disco deben sobrevivir ante la falla del servidor. 4

5 Propiedades ACID de las Transacciones Atomicidad (Atomicity): todo o nada. Consistencia (Consistency): una transacción hace pasar el sistema de un estado consistente a otro. Es generalmente responsabilidad de los programadores de servidores y clientes el asegurar que los datos queden en un estado consistente. Aislamiento (Isolation) Durabilidad (Durability) Propiedades ACID Para soportar la atomicidad ante fallas y la durabilidad, los objetos de datos deben ser recuperables (estar disponibles en almacenamiento permanente). Cuando cae un servidor (falla de hardware o software) los cambios de todas las transacciones que culminaron deben estar disponibles en el almacenamiento permanente. Cuando el servidor sea reemplazado se recuperarán los objetos para reflejar TODO o NADA. Propiedades ACID Un servidor que soporta transacciones debe sincronizar las operaciones para asegurar que se satisface el requisito de aislamiento. Una forma de hacerlo es serializando o secuencializando las operaciones. Esto puede ser inaceptable desde el punto de vista del desempeño. La idea de los servidores es maximizar la concurrencia, se permitirá entonces que se entremezclen las transacciones (o sus componentes), si el efecto es el mismo que si se ejecutarán secuencialmente. Es decir son secuencialmente equivalentes. 5

6 Control de Concurrencia Transacciones A B C A B C Operaciones conflictivas Delay Ejecución Operaciones compuestas Serialización de operaciones conflictivas Condiciones de Terminación Una transacción siempre termina, aun en la presencia de fallas. Si una transacción termina de manera exitosa se dice que la transacción hace un commit (consumación) Si la transacción se detiene sin terminar su tarea, se dice que la transacción aborta. Cuando la transacción es abortada, su ejecución se detiene y todas las acciones ejecutadas hasta el momento se deshacen (undone) regresando a la base de datos al estado antes de su ejecución. A esta operación también se le conoce como rollback. Terminación El manejador de transacciones puede abortar una transacción si observa que no puede garantizar la equivalencia secuencial. La operación de abort también puede estar disponible para los programadores: una transacción formada por: solicitud de saldo-retiro, puede abortar si no hay dinero suficiente. 6

7 C C C TPS Transaction Manager scheduler Data Manager Recovery Manager Cache Manager Estructura de un Sistema de Manejo de Transacciones El Manejador de Transacciones valida las peticiones de los clientes y pasa la transacción al planificador. El Planificador usa alguna estrategia para permitir una ejecución concurrente que sea secuencialmente equivalente. Manejador de Datos: transferir los datos a memoria principal, escribir actualizaciones, recuperarse ante fallas. Estructura de un Sistema de Manejo de Transacciones El manejador de transacciones (Coordinador) dá a cada transacción un identificador TID Operaciones disponibles al Cliente: tid BeginTransaction() para el comienzo de una transacción, devuelve el TID EndTransaction(tid), devuelve abort o commit dependiendo si la transacción se ha podido o no realizar Abort(tid): El cliente puede abortar la transacción. Estructura de las Transacciones Planas: consisten de una secuencia de operaciones primitivas encerradas entre las palabras clave Begin Transaction y End Transaction. Por ejemplo, Begin_transaction Reservación... End transaction 7

8 Estructura de las Transacciones Anidadas: las operaciones de una transacción pueden ser transacciones. Por ejemplo, Begin_transaction Reservación... Begin_transaction Vuelo... end. {Vuelo}... Begin_transaction Hotel end {Hotel} End_transaction Reservación Transacciones Anidadas Una transacción anidada dentro de otra transacción conserva las mismas propiedades que la de sus padres, esto implica, que puede contener así mismo transacciones dentro de ella. Existen restricciones obvias para una transacción anidada: Debe empezar después que su padre y debe terminar antes que él. El commit de una subtransacción es condicional al commit de su padre, en otras palabras, si el padre de una o varias transacciones aborta, las subtransacciones hijas también serán abortadas. Transacciones Anidadas Las transacciones anidadas proporcionan un nivel más alto de concurrencia entre transacciones. Ya que una transacción consiste de varios transacciones, es posible tener más concurrencia dentro de una sola transacción. Las transacciones de un mismo nivel se pueden ejecutar en forma concurrente pero sus accesos se deben secuencializar. 8

9 Transacciones Anidadas Las transacciones pueden hacer commit o abort de forma independiente. Cuando una subtransacción aborta, la transacción padre puede elegir una sub-transacción alternativa para completar su tarea. Transacciones Anidadas Reglas para el commit de transacciones anidadas: Una transacción puede hacer commit o abort sólo después que han terminado las transacciones hijas. Cuando una subtransacción finaliza, decide de forma independiente si hace un commit provisional o aborta. Una decisión de abortar es definitiva. Transacciones Anidadas Reglas para el commit de transacciones anidadas: Cuando un padre aborta, todas las subtransacciones abortan (aún cuando éstas hayan realizado un commit provisional) Cuando una subtransacción aborta, el padre puede decidir abortar o no. Si las transacciones de alto nivel hacen COMMIT, se pueden consumar también todas las subtransacciones que hayan realizado un COMMIT provisional. Los efectos de una subtransacción no son permanentes hasta que no se consuma la transacción de nivel superior 9

10 Commit T: Transacción de Niver Superior T1: Commit provisional Abort T2: T11 T12 T21 Commit provisional Commit provisional T211 Commit provisional Commit provisional Control de Concurrencia Las versiones provisionales se transfieren a los objetos sólo cuando una transacción hace commit; en este caso se transfieren también a memoria permanente. Cuando una transacción aborta, sus versiones provisionales se borran. Serialización de Transacciones y Equivalencia Secuencial Operaciones conflictivas: 2 operaciones son conflictivas cuando sus efectos combinados dependen del orden en el cual fueron ejecutadas. Se consideran conflictivas las siguientes operaciones: read read no conflictivas read write conflictivas write write conflictivas Cuando dos o más transacciones son conflictivas es necesario su serialización para asegurar la consistencia de los datos después de su ejecución. 10

11 Ejemplo: write(x, 100); write(x, 200) -> el valor final de x es 200 write(x,200); write(x,100) -> el valor final de x es 100. Operaciones Conflictivas (no conmutativas) En el caso de un objeto bancario: Crédito y débito a una cuenta son conmutativas (el valor final es el mismo) crédito y crédito son conmutativas débito y débito son conmutativas read-balance y crédito no son conmutativas read-balance y débito no son conmutativas. Estado Consistente Un estado consistente se logra ejecutando las transacciones de forma serial. En este caso no hay posibilidad de que una transacción interfiera en lo que está haciendo la otra. Esto no obstante, trae problemas de desempeño. 11

12 Ejecución Serial T: debito(cuenta A, 1000) T: crédito(cuenta B, 1000) S: leer-balance (cuenta A) S: leer-balance (cuenta B) S: Imprimir (A + B) Ejecución Serial S: leer-balance (cuenta A) S: leer-balance (cuenta B) S: Imprimir (A + B) T: debito(cuenta A, 1000) T: crédito(cuenta B, 1000) T: debito(cuenta A, 1000) S: leer-balance (cuenta A) S: leer-balance (cuenta B) Ejecución S: Imprimir (A + B) Entre-mezclada T: crédito(cuenta B, 1000) La tercera ejecución no es equivalente a ninguna de las dos ejecuciones hay una inconsistencia, S lee actualizaciones intermedias de T, está viendo un estado inconsistente. Control de Concurrencia: Problemas que generan las operaciones conflictivas ejecutándose concurrentemente Actualizaciones Perdidas: otro ejemplo. T: balance = b.obtenbalance(); b.crédito(balance*1.1) a.debito(balance/10) U: balance = b.obtenbalance(); b.crédito(balance*1.1) c.debito(balance/10) balance = b.obtenbalance(); 200$ b.crédito(balance*1.1) 220$ a.débito(balance/10) balance = b.obtenbalance(); 200$ b.crédito(balance*1.1) 220$ c.débito(balance/10) El valor final de B ha debido ser 242$, no 220$. U leyó un valor antes de que T lo actualizara. El problema viene por paralelizar o pretender que las 2 transacciones se ejecuten concurrentemente cuando deben ejecutarse en forma secuencial. 12

13 Recuperaciones Inconsistentes V: a.débito(100) b.crédito(100) W: Unasucursal.totalSucursal(); /* El valor inicial de ambas cuentas es 200 */ a.débito(100) $100 b.crédito(100) $300 Total = a.obtenbalance(); total = total + b.balance(); // total=300 total = total + c.balance(): W vé el valor nuevo de a y el Valor viejo de b. No se está cumpliendo la propiedad de aislamiento. Control de Concurrencia: Sol. a actualizaciones perdidas. balance = b.obtenbalance(); 200$ b.crédito(balance*1.1) 220$ a.débito(balance/10) balance = b.obtenbalance(); 220$ b.crédito(balance*1.1) 242$ c.débito(balance/10) -Se puede conseguir serialización o algo equivalente (equivalencia secuencial) secuenciando el acceso al objeto. -La tabla es un ejemplo de secuenciamiento + cierto grado de concurrencia. Control de Concurrencia Equivalencia secuencial: Para cualquier par de transacciones es posible determinar un orden de operaciones conflictivas sobre objetos accedidos por ambas. La equivalencia secuencial se logra de la siguiente forma: a. - Todos los accesos de una transacción a un objeto particular (operaciones conflictivas) deben secuencializarse con respecto a su acceso por otras transacciones. 13

14 Control de Concurrencia Equivalencia secuencial: b. Todos los pares de operaciones conflictivas de dos transacciones se deben ejecutar en el mismo orden sobre los objetos a los que ambas acceden. Si las transacciones T y U acceden a los objetos i y j en forma conflictiva, Se requiere: T acceda i antes que U y T accede j antes que U U acceda a i antes que T y U acceda a j antes que T Control de Concurrencia T T: x=lee(i); escribe(i,10); escribe(j,20) U: y=lee(j); escribe(j,30); z=lee(i) U x = lee(i) escribe(i,10) y = lee(j) Escribe(j,30) escribe(j,20) Z=lee(i) No es secuencialmente equivalente porque los pares de operaciones conflictivas No se hacen en el mismo orden en todos los objetos. Aunque si se cumple la Primera condición. T lee i antes que U, U lee j antes que T T U A B C D Todos los objetos tienen que ser accedidos por las transacciones en el mismo orden. i: T luego U j: U luego T 14

15 Control de Concurrencia: Problemas que generan las operaciones conflictivas Recuperaciones Inconsistentes V: a.débito(100) b.crédito(100) W: Unasucursal.totalSucursal(); /* El valor inicial de ambas cuentas es 200 */ a.débito(100) $100 b.crédito(100) $300 Total = a.obtenbalance(); total = total + b.balance; total = total + c.balance(): V accede a antes que W. V accede a b después de W. a: V, W b: W, V Sol. Del problema de Recuperaciones Inconsistentes. V: a.extrae(100) $100 b.deposita(100) $300 W: Total = a.obtenbalance(); total = total + b.balance; total = total + c.balance(): Solución: Ejecución Secuencial a: V,W b: V, W Control de Concurrencia: Abortos, más sobre la propiedad de aislamiento. No obstante pueden aparecer problemas aún en presencia de ejecuciones secuencialmente equivalentes. Esto es porque no hemos considerado que una transacción puede abortar. Se ha demostrado que la ejecución secuencialmente equivalente es necesaria pero no suficiente para la ejecución concurrente de transacciones. 15

16 Control de Concurrencia Las transacciones pueden abortar, ante esta situación surgen otros problemas: lecturas sucias y escrituras prematuras Lecturas Sucias Transacción T Transacción U a.getbalance() (100$) Lectura Sucia a.crédito(+10) (110$) a.getbalance() (110$) a.crédito(+20) (130$) commit aborta Se restaura el valor de a a 100. U tomó el valor 110$ que ahora no es válido. - La estrategia para la recuperación es retrasar la acción de commit de U hasta que T finalice - Esto conlleva a la posibilidad de Abortos en Cascada (si T aborta, U debe abortar también) Control de Concurrencia Una forma de evitar abortos en cascada es sólo permitir a las transacciones leer objetos que fueron escritos por transacciones consumadas. Es decir, implementar de forma estricta la propiedad de aislamiento. Control de Concurrencia Escrituras Prematuras T: a.crédito(+5) U: b.crédito(+5) a= 100$ a. Crédito(+5) 105$ a= 105$ a.crédito(+5) 110$ Algunos sistemas de BD implementan la acción Abort restaurando las imágenes Anteriores. Si U aborta y T se consuma el balance debe ser de 105$. Correcto. U se consuma y T Aborta: El balance debería estar en 105$, pero se coloca la imagen anterior a T que es 100$. La escritura de U es prematura, antes de que T haga su commit. 16

17 Control de Concurrencia Para garantizar resultados correctos en un esquema de recuperación que utiliza imágenes anteriores, las operaciones de escritura se deben atrasar hasta que las transacciones anteriores que actualizaron los mismos objetos hayan hecho commit o abort (U no debería escribir) Control de Concurrencia La ejecución de las transacciones se llama estricta si las lecturas o escrituras de los objetos se retrasa hasta que todas las transacciones que previamente escribieron el objeto hayan hecho commit o abort. La ejecución estricta de las transacciones hace cumplir la propiedad de aislamiento. Control de Concurrencia Para que un servidor está en capacidad de deshacer cambios si una transacción aborta, debe diseñarse de forma que las actualizaciones puedan ser eliminadas. Todas las operaciones de actualización se hacen sobre versiones provisionales de los objetos en memoria volátil. A cada transacción se le proporciona su conjunto privado de versiones provisionales de los objetos que ha alterado. 17

18 C C C TPS Transaction Manager scheduler Estructura de un Sistema de Manejo de Transacciones El Planificador usa alguna estrategia para permitir una ejecución concurrente que sea secuencialmente equivalente. Data Manager Recovery Manager Cache Manager Contenido Mecanismos de Control de Concurrencia Control de Concurrencia a través de bloqueos Control Optimista de la Concurrencia Ordenación por marcas de tiempo Comparación de métodos. Control de Concurrencia: Bloqueos balance = b.obtenbalance(); 200$ b.ponbalance(balance*1.1) 220$ a.extrae(balance/10) balance = b.obtenbalance(); 220$ b.ponbalance(balance*1.1) 242$ c.extrae(balance/10) -Se puede conseguir equivalencia secuencial secuenciando el acceso al objeto. -La tabla es un ejemplo de secuenciamiento + cierto grado de concurrencia. -Una forma sencilla de serializar es a través del uso de bloqueos exclusivos. - El acceso a un objeto puede ser restringido mediante un lock. Sólo la transacción que tenga el lock sobre el objeto podrá hacer operaciones sobre él. 18

19 Control de Concurrencia:Bloqueos T: balance = b.obtenbalance(); b.ponbalance(balance*1.1) a.extrae(balance/10) U: balance = b.obtenbalance(); b.ponbalance(balance*1.1) c.extrae(balance/10) BeginTransaction balance = b.obtenbalance(); Bloquea B b.crédito(balance*1.1) a.débito(balance/10) Bloquea A End Transaction Desbloquea A,B Begin Transaction balance = b.obtenbalance(); Espera por B Concedido B b.obtenbalance(); b.crédito(balance*1.1) c.débito(balance/10) Bloquea C End Transaction Desbloquea B,C Control de Concurrencia: Bloqueos Nivel de granularidad: tiene que ver con el tamaño del objeto o dato que se está bloqueando. A mayor granularidad (mayor fineza del grano), más pequeño es el tamaño del objeto: ejm: tabla, registro, campo, etc. Mientras mayor sea la fineza del grano, mejor será el grado de paralelismo/concurrencia, pero mayor será la complejidad del sistema. El bloqueo puede ser a nivel de item, página, archivo, base de datos (donde item representa el grano más fino y base de datos corresponde al grano más grueso) Control de Concurrencia: Bloqueos Cada vez que una transacción necesita leer o escribir en un objeto, solicita un lock sobre el mismo hasta que la transacción culmine exitosamente (commit). Cualquier otra transacción que desee hacer alguna operación sobre dicho objeto tendrá que esperar hasta que el mismo sea desbloqueado. 19

20 Control de Concurrencia:Bloqueos Para lograr la equivalencia secuencial, todos los pares de operaciones conflictivas se deben hacer en el mismo orden. Para asegurar esto, no está permitido a una transacción adquirir un nuevo bloqueo después de que ha liberado alguno. Existen dos fases: Adquirir bloqueos (Fase de crecimiento) Liberar bloqueos (Fase de Acortamiento) Algoritmo de locking o bloqueo Two Phase Locking: obtención y liberación Durante la fase de obtención, la transacción trata de obtener todos los locks que necesite. Si no es posible obtener alguno, entonces espera. La segunda fase comienza cuando la transacción libera alguno de los locks, a partir de ese momento no podrá solicitar ningún otro lock (si lo hace, será abortada). Desventaja: si una transacción en la fase de liberación había desbloqueado algunos objetos y los mismos habían sido accedidos por otras transacciones antes de que la primera hiciera commit, entonces las demás transacciones deberían abortar (esto es abortos en cascada). Pudiera ocurrir: lecturas sucias o escrituras prematuras Algoritmo de locking o bloqueo Para evitar esto, se mantienen todos los bloqueos aplicados a los objetos hasta que la transacción que los posee se consuma (commit) o aborte. Esto se llama Bloqueo en dos fases estricto. La fase de liberación se realiza sólo cuando la transacción hace commit Ventaja: evita los abortos en cascada Desventajas: El nivel de paralelismo se degrada En algunos casos es inadmisible. 20

21 Algoritmo de locking o bloqueo Two Phase Locking Strict Two Phase Locking Fase de crecimiento Fase de liberación Fase de crecimiento Fase de liberación number of locks number of locks Se liberan todos los locks Time Time Control de Concurrencia: Bloqueos Para mejorar la concurrencia: la porción de objetos a la que se debe secuenciar el acceso debe ser tan pequeño como sea posible. Problema de los lectores y escritores: podemos tener muchos lectores accediendo concurrentemente a los datos. Algoritmo de locking o bloqueo lock otorgado lock solicitado Ninguno read OK - write OK read read OK - write Espera write read Espera - write Espera Una mejora: utilizar locks de escritura y locks de lectura para ofrecer un mejor paralelismo al permitir que se realicen concurrentemente transacciones que hagan operaciones no conflictivas. 21

22 Algoritmo de locking o bloqueo Se toma un lock de lectura, y se promueve a un bloqueo de escritura cuando se va a escribir sobre el mismo objeto. Cuando una transacción posterior desea leer, debe esperar hasta que se libere el lock de escritura. Algoritmo de locking o bloqueo Para asegurar que se sigan las reglas de solicitud de locks para los objetos, el cliente no tiene acceso a las operaciones de bloqueo. Los locks son adquiridos y liberados por el administrador de transacciones. Todo lo concerniente al control de concurrencia es transparente para el programador. Bloqueo para Transacciones Anidadas El propósito de un esquema de bloqueo es serializar el acceso a los objetos de modo que: 1. Cada conjunto de transacciones anidadas sea la única entidad a la que se debe impedir ver los efectos de otro conjunto de transacciones anidadas 2. Se debe impedir que cada transacción en un conjunto de transacciones anidadas observe los efectos parciales de otras transacciones del conjunto. 22

23 Bloqueo para Transacciones Anidadas La primera regla se logra disponiendo que cada bloqueo que adquiere una subtransacción es heredado por su padre cuando esta finaliza. Esto garantiza que puedan mantenerse los bloqueos hasta que se haya consumado o abortado la transacción a nivel superior. Bloqueo para Transacciones Anidadas La segunda regla se hace cumplir así: No se permite la ejecución concurrente de padre e hijos. Si una transacción padre tiene un bloqueo sobre el objeto, retiene el bloqueo mientras el hijo se ejecuta. La transacción hijo adquiere temporalmente el bloqueo. Se permite la ejecución concurrente de transacciones al mismo nivel, por lo que cuando éstas accedan a los mismos objetos el esquema de bloqueo debe secuenciar el acceso. Algoritmo de locking o bloqueo El problema del algoritmo de bloqueo es que puede ocasionar deadlocks o Interbloqueos. T a.crédito() b.débito bloqueo de escritura para A Espera por U Bloqueo en B U b.crédito() bloqueo de escritura para B a.débito(200) Espera por T. Bloquea en A 23

24 Interbloqueos Condiciones para un bloqueo: 1.- Condición de exclusión mutua. Cada recurso está asignado a un único proceso o está disponible. 2.- Condición de posesión y espera (Hold and Wait).Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos. 3.- Condición de no apropiación. Un proceso no puede ser forzado a dejar los recursos otorgados con anterioridad. El proceso que los posee debe liberarlos en forma explícita. 4.- Condición de espera circular.debe existir una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena. Poseído por R1 Espera por T U T U Espera por R2 Poseído por Grafo de Espera Circular: Si hay un ciclo en el grafo significa que hay interbloqueo (deadlock). Tratamiento de Interbloqueos Políticas frente a los bloqueos: 1.- Detectar: dejar que suceda y luego recuperarse. 3.- Evitar que estructuralmente sea posible el deadlock, es decir, asegurar que al menos una de las cuatro condiciones no se cumpla. (EM, N Apropiación, H and W, Circular Wait) 4.- Predecir: Algoritmo del Banquero: Se necesita conocer los requerimientos de recursos del proceso. (No es aplicable en sistemas distribuidos por su complejidad de conocer los requerimientos de recursos de los procesos con anterioridad). 24

25 Tratamiento de Interbloqueos Políticas frente a los bloqueos: 1.- Detectar: Se pueden detectar a través de los grafos. Una vez detectado el ciclo se debe escoger una transacción y abortarla. La elección de la transacción a abortar no es sencilla. Un factor que puede ser tomado en cuenta es su edad. La presencia de ciclos en el grafo se puede detectar cada vez que se añade un arco o cada cierto tiempo para disminuir el overhead. Algoritmos de Prevención Se basan en asignar a cada transacción un timeout: A cada bloqueo se le proporciona un tiempo limitado en el que es invulnerable. Después de ese tiempo es vulnerable. Si ninguna transacción está compititnedo por el objeto, un objeto con bloqueo vulnerable continua bloqueado. Sin embargo, si cualquier otra transacción está esperando por acceder a un objeto con un bloqueo vulnerable, se rompe el bloqueo y se reanuda la transacción que esperaba. La transacción cuyo bloqueo se ha roto, normalmente aborta. Serialización de Transacciones a través de locks. El manejo de bloqueos (asignación, liberación) causan un overhead adicional, lo mismo que los algoritmos de prevención o detección Disminuyen la concurrencia. Otros esquemas (Ver en el material de apoyo) Bloqueo de Versiones Jerárquico 25

26 Contenido Mecanismos de Control de Concurrencia Control de Concurrencia a través de bloqueos Control Optimista de la Concurrencia Ordenación por marcas de tiempo Comparación de métodos. Recuperación de Transacciones Algoritmo Optimista Se permite que las transacciones procedan como si no hubiera posibilidad de conflicto con otras transacciones hasta que el cliente complete su tarea y solicite un EndTransaction. Cuando aparece un conflicto se abortará la transacción. Las modificaciones/accesos se hacen sobre espacios privados o provisionales y se lleva registro de los datos que han sido modificados/accedidos. Al momento del commit, se chequea que los espacios privados sean válidos, de no serlos, se aborta la transacción. A toda transacción se le asigna un identificador (orden secuencial ascendente). Algoritmo Optimista Cada transacción cumple tres fases: Ejecución:Todos los reads se ejecutan inmediatamente sobre la última versión consumada del dato. Los writes crean versiones tentativas. Se mantiene un conjunto de lectura (datos leídos) y un conjunto de escritura (versiones tentativas de los datos). No hay posibilidad de lecturas sucias, sólo se leen valores consumados. Validación: Ante la solicitud de un commit, se valida si la transacción realizó operaciones conflictivas con otras transacciones. Si la validación tiene éxito se puede hacer COMMIT. Si falla, se debe usar alguna forma de resolución de conflictos (abortar alguna de las transacciones) 26

27 Algoritmo Optimista Actualización: Si la transacción es validada, todos los cambios hechos sobre los espacios privados se actualizan en las versiones originales. Algoritmo Optimista Fase de validación: Ante el End_transaction, a cada transacción se le asigna un número (secuencial ascendente, i) que define su posición en el tiempo. Algoritmo Optimista Fase de validación (Tv): La validación se basa en las siguientes reglas : Tv Ti Regla (i<v) 1. write read Ti no debe leer datos escritos por Tv 2. read write Ti no debe escribir datos leídos por Tv 3. write write Ti no debe escribir datos que está escribiendo o haya escrito Tv y Tv no debe escribir datos que está escribiendo o haya escrito Ti Simplificación: fases de validación y escritura son secciones críticas (muy cortas), se supondrá que no pueden solaparse 2 transacciones en estas fases; se satisface la regla 3. Sólo hay que validar las reglas 1 y 2 27

28 Algoritmo Optimista Validación hacia atrás: Los reads de las Ti se realizaron antes que la validación (por tanto escritura) de Tv, entonces se cumple la regla 1. Sólo se valida la regla 2 para cada Ti (Ti(write), Tv(read)): que Tv no haya leído un valor sin consumar. valid= true; for (Ti=startTn+1;Ti<=finishTn,Ti++) { if ( read_set of Tv intersects write_set Ti) valid=false; } Algoritmo Optimista Validación hacia atrás: starttn: Ti más grande asignado a una transacción committed al momento que Tv entra a su fase de trabajo. finishtn: Ti más grande asignado a una transacción committed al momento que Tv entra a su fase de validación Hay que validar con las Ti que hacen Commit durante la fase de ejecución de Tv. Algoritmo Optimista Validación hacia atrás: Sólo es necesario validar los conjuntos de lectura. Las transacciones que sólo hacen escritura no se validan (lo queellaescribalo validaránotrastransaccionesmayores posteriormente). Si Tv no es válida, se aborta 28

29 Algoritmo Optimista Validación hacia atrás: T1 T2 T3 Transacción en validación Tv activa1 activa2 Trabajo Validación Escritura Transacciones anteriores committed Algoritmo Optimista Validación hacia atrás: requiere que los conjuntos de escritura de las versiones antiguas de los objetos ya consumadas sean retenidas hasta que no hayan transacciones solapadas, aún no validadas, con la que pudieran entrar en conflicto. En un entorno con transacciones largas, el mantener estos conjuntos puede ser un problema. Algoritmo Optimista Validación hacia adelante: el conjunto de escritura de Tv se compara con el conjunto de transacciones activas que se solapan, aquellas que están aún en su fase de trabajo. 29

30 Algoritmo Optimista Fase de validación: La validación se basa en las siguientes reglas : Tv Ti Regla (v<i) 1. write read Tv no debe escribir datos leídos por Ti 2. read write Tv no debe leer datos escritos por Ti 3. write write Ti no debe escribir datos que está escribiendo o haya escrito Tv y Tv no debe escribir datos que está escribiendo o haya escrito Ti Algoritmo Optimista Validación hacia adelante: Se satisface la regla 2 porque las transacciones activas no escriben mientras que Tv no se ha completado. Sólo se valida la regla 1 para cada Ti: se compara el conjunto de escritura de Tv con los conjuntos de lectura de las transacciones activas. valid= true; for (Tid=activa1;Tid<=activaN,Tid++) { if ( write_set of Tv intersects read_set of Ti) valid=false; } Algoritmo Optimista Validación hacia delante: activax: Representan transacciones que aún no han entrado a la fase de validación Las transacciones que sólo hacen lecturas no requieren ser validadas Si Tv no es válida: Abortar las activas y consumar Tv Abortar Tv 30

31 Algoritmo Optimista Validación hacia adelante: T1 T2 T3 Transacción en validación Tv activa1 activa2 Trabajo Validación Escritura Transacciones anteriores committed Algoritmo Optimista Desventajas: Hay posibilidad se inanición: una transacción puede abortar indefinidas veces y no se contempla un mecanismo para evitarlo. Este algoritmo no serviría para nada en sistemas con transacciones largas o muchas transacciones en conflicto. Contenido Mecanismos de Control de Concurrencia Control de Concurrencia a través de bloqueos Control Optimista de la Concurrencia Ordenación por marcas de tiempo Comparación de métodos. 31

32 Algoritmo por Marcas de Tiempo Las operaciones se validan al momento de ser ejecutadas. Cuando una transacción comienza, se le asigna un timestamp La regla de ordenación básica por marca de tiempo está basada en los conflictos de operación: Una solicitud de una transacción para escribir un objeto es válida sólo si ese objeto fue leído y escrito por última vez por transacciones anteriores en el tiempo. Una petición de lectura a un objeto es válida sólo si el objeto fue escrito por última vez por una transacción anterior en el tiempo. Algoritmo por Marcas de Tiempo Se trabaja con versiones tentativas. Las versiones tentativas de los objetos son consumadas en el orden determinado por las marcas de tiempo de las transacciones que las realizaron. Cada item de datos tiene asociado: Un timestamp de escritura (Twrite_commit), un timestamp de lectura (Tread) y un conjunto de versiones tentativas con su propio timestamp Un write aceptado genera una versión tentativa Un read se dirige a la versión con el máximo timestamp menor que el timestamp de la transacción Algoritmo por Marcas de Tiempo Para saber cuando una operación de escritura es válida se aplica el siguiente algoritmo: Sea Tj una transacción que desea hacer una operación de escritura sobre el objeto D. If ((Tj >= Max (Tread en D)) && (Tj > write_commit en D)) Proceder con el write sobre una versión tentativa nueva, con marca de tiempo Tj else // write is too late Abortar Tj; 32

33 Algoritmo por Marcas de Tiempo Regla de escritura (No se muestran las marcas de lectura) a) T3->write b) T3-> write antes T2 después T2 T3 antes T1 después T1 T2 T2 T3 Versión committ c) T3->write d) T3-> write antes T1 T4 antes T4 T3 Aborta después T1 T3 T4 después T4 Versión tentativa Algoritmo por Marcas de Tiempo Para saber cuando rechazar o aceptar inmediatamente una operación de lectura Sea Tj una transacción que desea hacer un read sobre el objeto D. If ((Tj > Max (Write_Commit en D)) Sea Ds la versión de D con la máxima marca de tiempo de escritura menor a Tj (commited o no) Si se ha consumado Ds: realiza la operación de lectura. Si no, espera hasta que la transacción que hizo la versión Ds haga commit o abort. else // write is too late Abortar Tj; Algoritmo por Marcas de Tiempo Regla de lectura a) T3->read b) T3-> read read se ejecuta T2 T2 T4 inmediatamente Seleccionado (Ds) Seleccionado (Ds) read se ejecuta inmediatamente c) T3->read d) T3-> read T1 T2 read espera T4 T3 Aborta Versión committ Versión tentativa Seleccionado (Ds) 33

34 Algoritmo por Marcas de Tiempo Las versiones commit (consumadas) de cada objeto deben crearse en el orden de las marcas de tiempo. Un coordinador necesita esperar, a veces, que se completen las transacciones anteriores antes de escribir todas las versiones consumadas de los objetos. La última marca de lectura Corresponde a la transacción T T U a b c begint Bal=b.obtenBalance() b.crédito(balance*1.1) a.débito() Commit BeginT Bal=b.obtenBalance() Espera por T. Bal=b.obtenBalance() b.crédito() c.débito() MTL MTE {} S S,T T MTL MTE {} S {T} S,T {U} T,U T MTL MTE {} S S,U S < T < U. En negritas se colocan las operaciones ya consumadas Algoritmo por Marcas de Tiempo Ejercicio T U T U BeginT X=lee(i) Escribe(j,44) BeginT escribe(i,55) escribe(j,66) Commit BeginT X=lee(i) Escribe(j,44) BeginT Escribe(i,55) Escribe(j,66) commit Corra el algoritmo de secuenciación por marcas de tiempo. Las marcas de tiempo iniciales de lectura y escritura son t0. 34

35 T U BeginT y = lee(k) BeginT x = lee(i) Escribe(j,44) Commit Escribe(i,55) Escribe(j,66) Commit Qué pasa cuándo va a terminar la transacción T si corremos el algoritmo Optimista con validación hacia atrás, hacia adelante??? Ejercicio Un servidor gestiona los objetos a1, a2, an. El servidor proporciona a sus clientes Dos operaciones: Lee(i) devuelve el valor de ai Escribe(i,valor) asigna el valor valor a ai Las transacciones T y U se definen como sigue: T: x= lee(i); escribe(j,44) U: escribe(i,55); escribe(j,66) 1. Cómo funciona o escriba una secuencia de ejecución con bloqueo estricto de dos fases. 2. Describa un solapamiento de las transacciones T y U en el que los bloqueos se Liberan prontamente y se obtiene un efecto que no es secuencialmente equivalente. Transacciones Distribuidas 35

36 Contenido Transacciones Distribuidas Transacciones Planas y Anidadas Commit y Abort en un Sistema Distribuido Control de Concurrencia Por Bloqueo Optimista Marcas Temporales Recuperación Transacciones Distribuidas Sus actividades involucran múltiples servidores. Se usa el término transacciones distribuidas para referirse a transacciones planas o anidadas que acceden a objetos administrados por múltiples servidores. Las transacciones distribuidas pueden ser planas o anidadas. Cliente: begin_transaction a.extrae(4) c.deposita(4) b.extrae(3); d.deposita(3); end_transaction Transacción Plana: Un cliente realiza peticiones a más de un servidor. cliente Las peticiones son secuenciales X Y Z A B C y D 36

37 Transacciones Distribuidas X T1 M T11 T Cliente Y T2 N T12 T21 Transascción distribuida anidada: las transacciones del mismo nivel son concurrentes. Si están en Servidores distintos pueden ejecutarse en paralelo. P T22 Transacciones Anidadas Sea una transacción distribuida donde el cliente transfiere $10 de la cuenta A a C y $20 de B a D. Las cuentas A y B están separadas en servidores X e Y y las cuentas C y D están en el servidor Z. Si la transacción se estructura como un conjunto de cuatro transacciones anidadas, los cuatro requerimientos ( dos depósitos y dos retiros) pueden correr en paralelo y el efecto total es lograr mayor rendimiento que una transacción simple ejecutando las cuatro operaciones secuencialmente. 37

38 Procesamiento de transacciones distribuidas Un cliente comienza una transacción enviando un begin_transaction a cualquier servidor TPS. Éste se convierte en el coordinador y los que se tengan que contactar a partir de aquí se convierten en participantes. Coord. Unirse Participante begintransaction endtransaction A SucursalX a.extrae(4) Unirse Participante B b.extrae(3) Cliente b.extrae(t,3) Unirse SucursalY Participante Nota: el coordinador está en uno de los Servidores, por ejemplo SucursalX C D SucursalZ c.deposita(4) d.deposita(3) Procesamiento de transacciones distribuidas El coordinador que inició la transacción es el responsable final de consumarla o abortarla. Durante el progreso de una transacción el coordinador registra la lista de referencias de participantes, y cada participante registra una referencia hacia el coordinador. 38

39 Procesamiento de transacciones distribuidas La operación BeginTransaction devuelve el TID. Los identificadores de las transacciones deben ser únicos dentro del sistema distribuido. Una forma sencilla de obtener identificadores únicos esto es que cada TID tenga dos partes: el identificador del servidor (e.g. dirección IP) y un número único dentro del servidor. Procesamiento de transacciones distribuidas Existen dos aspectos importantes a considerar en las transacciones distribuidas: La Consumación de una Transacción Control de concurrencia Se supone que existe una comunicación entre TPSs a través de un protocolo de aplicación. Estos protocolos se implementan sobre RPC o pase de mensajes. Transacciones Distribuidas Cuando una transacción distribuida termina, la propiedad de atomicidad exige que todos los servidores acuerden lo mismo (commit) o todos aborten (abort). Existen protocolos para llegar a compromisos (Two-Phase-Commit) Las transacciones distribuidas deben ser globalmente serializadas. Existen protocolos de control de concurrencia distribuida. 39

40 Protocolos de Consumación Atómica Cuando el coordinador recibe un requerimiento Commit de una transación, tiene que asegurar: Atomicidad: Todos los nodos se comprometen con los cambios o ninguno lo hace y cualquier otra transacción percibe los cambios en todos los nodos o en ninguno. Aislamiento:Los efectos de la transacción no son visibles hasta que todos los nodos hayan tomado la decisión irrevocable commit o abort. Consumación en una fase Commit de una fase atómico Una manera simple de completar una transacción en forma atómica por el coordinador es comunicar el requerimiento de commit o abort (por parte del cliente) a todos los participantes de la transacción y mantenerse enviando el requerimiento hasta que todos ellos respondan con un ACK indicando que han realizado la tarea. El protocolo no contempla que la decisión de abortar venga de uno de los participantes. Sólo puede venir del cliente. Consumación en Dos Fases Permite que cualquier participante aborte su parte de la transacción. En la primera fase del protocolo cada participante vota para que la transacción sea consumada o abortada. Una vez que el participante ha votado commit, no se le permite que aborte. Por lo tanto, antes de un participante votar por commit debe asegurarse que será capaz de llevar a cabo su parte del protocolo de consumación, incluso si falla. Se dice que un participante está en estado preparado si finalmente será capaz de consumar la transacción en proceso. 40

41 Consumación en Dos Fases En la segunda fase: El coordinador recoge el resultado de las votaciones. Si alguno de los participantes vota por abortar, la decisión es abortar. Si todos los participantes votan consumar, ésta será la decisión. Consumación en Dos Fases Si uno de los participantes o el Cliente decide abortar (antes de la solicitud del coordinador) se le informa al resto. No se activa el protocolo de consumación. Protocolo de Consumación en dos Fases Fase 1 (votación) 1. El Coordinador envía una petición (commit?) a cada participante en la transacción 2. Cuando un participante recibe una petición commit? Responde al Coordinador con su voto (si o no). Antes de votar Sí se prepara para hacer commit guardando los objetos en almacenamiento permanente. Si el voto es No. El participante aborta de forma inmediata. 41

42 Protocolo de Consumación en dos Fases Fase 2 (finalización en función del resultado de la votación) 3. El coordinador recoge los votos (incluyendo el propio) Si no hay fallos y todos los votos son Sí, el coordinador decide consumar la transacción y envía peticiones de COMMIT a cada uno de los participantes. En otro caso, el Coordinador decide abortar la transacción y envía peticiones Aborta a todos los que votaron Sí. 4. Los participantes que han votado Sí están esperando por una petición de Commit o Abort por parte del Coordinador. Cuando se reciben uno de estos mensajes, se actúa en función de ellos. En caso de COMMIT se retorna al servidor:havecommitted. Protocolo de Consumación en dos Fases El protocolo podría fallar debido a la caída de uno o más servidores o debido a un corte en la comunicación. Para cubrir la posibilidad de caidas, cada servidor guarda la información correspondiente al protocolo en un dispositivo de almacenamiento permanente. Esta información la puede recuperar un nuevo proceso que se inicie para reemplazar al servidor caído. 42

43 Situación en la que un participante ha votado Sí y está esperando para que el coordinador le informe el resultado de la votación Fallas en la Comunicación - El participante está incierto frente al resultado y no puede seguir adelante hasta que obtenga los resultados de la votación por parte del coordinador. - No puede decidir unilateralmente, debe mantener los objetos. Envía un mensaje al Coordinador de DameDecision. Cuando obtiene la respuesta continua en el paso 4 del protocolo. - Si el Coordinador ha fallado el participante no podrá obtener una decisión hasta que el servidor sea reemplazado. Acciones frente a un timeout El participante ha realizado todas sus tareas y aún no ha recibido el llamado Puede Consumar?? (primera comunicación) En este caso, como no se ha tomado ninguna decisión el participante puede decidir unilateralmente abortar. 43

44 Acciones frente a un timeout El coordinador puede sufrir retrasos cuando está esperando por los votos de los participantes. Dado que no está decidido el destino de la transacción, tras cierto periodo de tiempo el coordinador puede abortar. En ese momento, anuncia su decisión a todos los participantes que ya habían votado. Algunos participantes retrasados pudieran votar Sí, sin haber recibido el último mensaje del coordinador. El coordinador ignora este Sí y el participante pasa al estado incierto. Transacciones Anidadas T11 Aborta en M T Cliente X T1 Y T2 T11 M N T12 T21 T T1 T2 Cons. Provisional (en X) T12 Cons. Provisional (en N) T21 Cons. Provisional (en N) Abortado (en M) T22 Cons. Provisional (en P) P T22 44

45 Transacciones Anidadas Cuando finaliza una subtransacción toma una decisión independiente sobre si consumarse de forma provisional (no es lo mismo que estar preparado) o abortar. Una consumación provisional es simplemente una decisión local y no necesariamente se guarda copia en un dispositivo de almacenamiento permanente Las transacciones trabajan y, cuando terminan, el servidor donde se encuentran registra información sobre si se han consumado provisionalmente o han abortado. Transacciones Anidadas Cuando una transacción anidada se consuma en forma provisional informa de su estado y del estado de sus descendientes a su madre. Cuando una transacción aborta, simplemente informa de haber abortado a su madre. Al final, la transacción a nivel superior recibe una lista de todas las subtransacciones en el árbol junto con el estado de cada una de ellas. Transacciones Anidadas La transacción a nivel superior juega el papel de Coordinador en el protocolo de consumación en 2 fases. 45

46 Transacciones Anidadas T11 Aborta en M T T1 T2 Cons. Provisional (en X) T12 Cons. Provisional (en N) T21 Cons. Provisional (en N) Abortado (en M) T22 Cons. Provisional (en P) La lista de participantes consta de los servidores de todas las subtransacciones que se hayan consumado provisionalmente pero no tienen ascendentes que hayan abortado: T, T1, T12 Transacciones Anidadas La transacción a nivel superior debe intentar consumar lo que quede del árbol. A T1 y T12 se les pedirá que voten para obtener el resultado. Si votan consumar deben preparar las transacciones guardando el estado de los T objetos en el dispositivo de almacenamiento permanente. La segunda fase es idéntica: se recogen los votos y se informa a los participantes en función del resultado. T1 T2 T11 Aborta en M Cons. Provisional (en X) T12 T21 Abortado (en M) T22 Cons. Provisional (en N) Cons. Provisional (en N) Cons. Provisional (en P) Control de Concurrencia: Bloqueos En una transacción distribuida los bloqueos se mantienen localmente (en el mismo servidor). Cada servidor gestiona un conjunto de objetos y es responsable de asegurar que éstos mantienen su consistencia cuando se accede a ellos desde transacciones concurrentes. Cada servidor es responsable de aplicar control de concurrencia sobre sus propios objetos. Los miembros de una colección de transacciones distribuidas son además responsables de garantizar que las transacciones se ejecutan de forma secuencialmente equivalente. 46

47 Control de Concurrencia: Bloqueos El administrador local de bloqueos puede decidir si otorga un bloqueo o hace que la transacción que lo requirió espere. Al otorgar un bloqueo debe informar al coordinador de la transacción. Sin embargo no puede liberar ningún bloqueo mientras la transacción que los tiene no haya terminado (commit o abort) en todos los servidores involucrados en la transacción. Cuando se usa el bloqueo para control de concurrencia, los objetos permanecen bloqueados y no están disponibles para otras transacciones hasta que se sepa que la transacción ha abortado o se ha consumado en todos los servidores involucrados. Bloqueos Dado que los administradores de bloqueos en diferentes servidores otorgan bloqueos independiente de los demás, es posible que diferentes servidores impongan diferente orden sobre las transacciones. Considérese el siguiente entrelazado de las transacciones T y U en los servidores X e Y: Servidor X A Servidor Y T Write(A) en X lock A Read(B) en Y espera U U Write(B) en Y lock B Read(A) en X espera por T B El objeto A está en el servidor X y el objeto B en el servidor Y Bloqueos Se tiene T antes que U en un servidor y U antes que T en el otro. Cuando se detecta una condición de interbloqueo las transacciones son abortadas. En este caso el coordinador será informado y abortará las transacciones en los participantes involucrados. 47

48 Algoritmos de Detección de Interbloqueos Distribuidos 1.- Centralizado: basado en grafos de espera Máquina 0 Máquina 1 Coordinador Transacciones Recursos A S S C A S C R R T T B B Cómo se mantiene el grafo en el coordinador? Cada vez que ocurra una variación en su grafo notifica al coordinador. Periodicamente cada máquina notifica sus últimos cambios. Periodicamente el coordinador solicita la información. Algoritmos de Detección de Interbloqueos Distribuidos 1.- Centralizado: basado en grafos de espera Máquina 0 Máquina 1 Coordinador Transacciones Recursos A R S S c 2 A R S C T T B T B 1 Problema: Los 3 casos pueden conducir a un Deadlock falso. Ejemplo: Si se pierden mensajes Si B solicita a T y C libera a T y llega primero el mensaje de B al coordinador, entonces el cree que hay deadlock. Algoritmos de Detección de Interbloqueos Distribuidos Tener el coordinador de bloqueos centralizado tiene problemas de escalabilidad, rendimiento, tolerancia a fallos, etc. 48

49 Algoritmo Distribuido (Caza de Arcos) En esta aproximación el grafo no se construye en forma global, sino que cada uno de los servidores implicados posee información sobre alguno de sus arcos. Los servidores intentan encontrar ciclos mediante el envío de mensajes denominados sondas. Interbloqueo Distribuido W W C D A Z X V B y U V U Pasos del Algoritmo Iniciación: Cuando un servidor percibe que una transacción T, espera por un recurso que tiene una transacción U (que está en otro servidor), inicia el algoritmo enviando una sonda que contiene el arco <T->U> al servidor que contiene el objeto por el cual está bloqueada la transacción U. Si U está compartiendo el bloqueo (varias transacciones acceden al mismo objeto), se envía la sonda a los servidores responsables de estas transacciones 49

Procesamiento de Transacciones

Procesamiento de Transacciones Procesamiento de Transacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and T. Kindberg. Contenido Mecanismos de Control de Concurrencia

Más detalles

Procesamiento de Transacciones

Procesamiento de Transacciones Procesamiento de Transacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and T. Kindberg. Contenido Definiciones Básicas Sincronización

Más detalles

Procesamiento de Transacciones

Procesamiento de Transacciones Procesamiento de Transacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and T. Kindberg. Transacciones Distribuidas Atomicidad Durabilidad

Más detalles

Transacciones Distribuidas. Basado en el cap. 13 del texto de G. Couloris, J. Dollimore y T. Kindberg. Sistemas Distribuidos. Conceptos y Diseño.

Transacciones Distribuidas. Basado en el cap. 13 del texto de G. Couloris, J. Dollimore y T. Kindberg. Sistemas Distribuidos. Conceptos y Diseño. Transacciones Distribuidas Basado en el cap. 13 del texto de G. Couloris, J. Dollimore y T. Kindberg. Sistemas Distribuidos. Conceptos y Diseño. Contenido Transacciones Distribuidas Transacciones Planas

Más detalles

Procesamiento de Transacciones

Procesamiento de Transacciones Contenido Procesamiento de ransacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and. Kindberg. Definiciones Básicas Sincronización ransacciones

Más detalles

Sistemas de Operación II

Sistemas de Operación II Sistemas de Operación II Transacciones distribuidas Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen van Steen Contenido Transacciones: Introducción y definiciones

Más detalles

Transacciones. Agenda

Transacciones. Agenda Transacciones Alumnos: Jesús Hernández CI:18.020.681 José De Abreu CI: 18 855 500 Agenda 1 Concepto de Transacción 1.1 Consistencia y Aislamiento 1.2 Atomicidad y Durabilidad 2 Transacciones y Planificadores

Más detalles

Transacción. Introducción a los conceptos del Procesamiento de las Transacciones. Monousuarios vs. Multiusuarios. Pablo Turjanski.

Transacción. Introducción a los conceptos del Procesamiento de las Transacciones. Monousuarios vs. Multiusuarios. Pablo Turjanski. Transacción a los conceptos del Procesamiento de las Transacciones Definición Una transacción es un conjunto de instrucciones que se ejecutan formando una unidad lógica de procesamiento. Una transacción

Más detalles

Resumen Tema 5: Proceso de transacciones

Resumen Tema 5: Proceso de transacciones Resumen Tema 5: Proceso de transacciones Transacción Unidad lógica de procesamiento secuencial compuesta por una o mas acciones que se ejecutan en bloque sobre una BD. Sentencias: Begin/end transaction.

Más detalles

Docente: Albert A. Osiris Sofía. Fundamentos de Bases de Datos - Licenciatura en Sistemas U. Académica Río Gallegos

Docente: Albert A. Osiris Sofía. Fundamentos de Bases de Datos - Licenciatura en Sistemas U. Académica Río Gallegos Docente: Albert A. Osiris Sofía 1 Recuperación ante Errores 2 Contenido de la Presentación Transacciones Fallos Recuperación ante Errores 3 Transacciones 4 Transacciones Transacción: colección de operaciones

Más detalles

Transacciones y Control de concurrencia

Transacciones y Control de concurrencia Transacciones y Control de concurrencia Se llama transacción a una colección de operaciones que forman una única unidad lógica de trabajo. Un sistema de base de datos debe asegurar que la ejecución de

Más detalles

Jose Manuel Perez Daniel Futrillé Prof. Ana Aguilera

Jose Manuel Perez Daniel Futrillé Prof. Ana Aguilera Jose Manuel Perez Daniel Futrillé Prof. Ana Aguilera 1 Introducción 2 Concepto de Transacciones 2.1 Propiedades de las transacciones 2.2 Condiciones de terminación de una transacción 2.3 Caracterización

Más detalles

Transacciones y Control de Concurrencia (capítulo 15 del libro)

Transacciones y Control de Concurrencia (capítulo 15 del libro) Transacciones y Control de Concurrencia (capítulo 15 del libro) Básicamente, una transacción es una colección de operaciones que forman una unidad de trabajo. Se busca que se ejecuten todas las operaciones

Más detalles

Introducción a los conceptos del Procesamiento de las Transacc

Introducción a los conceptos del Procesamiento de las Transacc a los conceptos del Procesamiento de las Transacciones 12/Mayo/2017 Transacción Definición Transacción Definición Una transacción es un conjunto de instrucciones que se ejecutan formando una unidad lógica

Más detalles

CAPITULO 6. Control de Concurrencia y Recuperación

CAPITULO 6. Control de Concurrencia y Recuperación CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un

Más detalles

4.6.- Integridad: Control de concurrencia.

4.6.- Integridad: Control de concurrencia. 4.6.- Integridad: Control de concurrencia. 4.6.1.- Introducción 4.6.2.- Técnicas de Bloqueo. 4.6.2.1.- Bloqueo (variable cerrojo) Tipos, protocolos Problemas. Interbloqueo Granularidad 4.6.2.2.- Marcas

Más detalles

TRANSACCIONES DISTRIBUIDAS

TRANSACCIONES DISTRIBUIDAS TRANSACCIONES DISTRIBUIDAS Tema # V Sistemas de operación II Abril-Julio 2008 Yudith Cardinale INDICE Introducción y definiciones Algoritmos de compromiso Two Phase Commit Three Phase Commit Algoritmos

Más detalles

Bases De Datos Depto. Computación FCEyN UBA

Bases De Datos Depto. Computación FCEyN UBA Bases De Datos Depto. Computación FCEyN UBA Timestamping Timestamping multiversion Validación Estos métodos asumen que no ocurrirá un comportamiento no serializable y actúan para reparar el problema sólo

Más detalles

Fundamentos de Bases de Datos

Fundamentos de Bases de Datos Fundamentos de Bases de Datos Control de Concurrencia y Recuperación CSI-INCO Fundamentos de Bases de Datos 1 Arquitectura de un DBMS Comunicación con el usuario Gestión de Operaciones Gestión de los Datos

Más detalles

Transacciones, Recuperación y Control de Concurrencia

Transacciones, Recuperación y Control de Concurrencia Transacciones, Recuperación y Control de Concurrencia Transacciones Transacción: colección de operaciones que forman una única unidad lógica de trabajo en una BD Control concurrencia Sistemas multiusuario:

Más detalles

cilred.com GESTIÓN DE TRANSACCIONES

cilred.com GESTIÓN DE TRANSACCIONES cilred.com GESTIÓN DE TRANSACCIONES ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.com GESTIÓN DE TRANSACCIONES En las base de datos existen una serie de operaciones fundamentales tales como la

Más detalles

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004 2do Cuatrimestre de 24 Elementos de Bases de Datos DptoCiencias e Ingeniería de la Computación Universidad Nacional del Sur Lic María Mercedes Vitturini [mvitturi@csunseduar] Repaso Hasta ahora vimos que

Más detalles

Capítulo 16: Control de la concurrencia

Capítulo 16: Control de la concurrencia Capítulo 16: Control de la concurrencia Protocolos basados en bloqueos Protocolos basados en las marcas temporales Esquemas multiversión Tratamiento de interbloqueos 16.1 Protocolos basados en bloqueos

Más detalles

Gestión de Transacciones: Concurrencia y Recuperación

Gestión de Transacciones: Concurrencia y Recuperación Gestión de Transacciones: Concurrencia y Recuperación Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos

Más detalles

Ing. Informática. Catedrático: Lic. Angélica Avalos Cano

Ing. Informática. Catedrático: Lic. Angélica Avalos Cano Ing. Informática Tema: Resumen de trasparencia, Control de transacciones para base de datos distribuidas, Control de concurrencia, Protocolos de bloqueo Presentado Por: María Cristina Cruz Ramírez Darvin

Más detalles

Módulo 7 Transacciones Distribuidas

Módulo 7 Transacciones Distribuidas Sistemas Distribuidos Módulo 7 Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia San Juan Bosco El modelo transaccional La actualización de una cinta maestra es tolerante

Más detalles

Gestión de Transacciones

Gestión de Transacciones Gestión de Transacciones y su relación con el gestor de concurrencia (planificador) y el gestor de recuperación 1 Sistema Monousuario vs. Multiusuario. concurrencia Transacciones Estado de las transacciones.

Más detalles

Ejecuciones Concurrentes

Ejecuciones Concurrentes Elementos de Bases de Datos Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] Clase 24 1er. Cuatrimestre de 2004 Transacciones

Más detalles

Bases de Datos 2. Teórico

Bases de Datos 2. Teórico Bases de Datos 2 Teórico Control de Concurrencia Sobre una BD se podrían ejecutar muchos procesos concurrentemente sobre exactamente los mismos datos. Estos procesos podrían estar interfiriendo unos con

Más detalles

CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS

CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS Introducción 3 1. CONTROL DE CONCURRENCIA 3 2. TRANSACCIONES Y ACCESOS 4 3. TRANSACCIONES Y ESTADOS DE LA BASE DE DATOS 5 4. ESTADOS DE LA TRANSACCIÓN 6

Más detalles

TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ

TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 1 1 BASES DE DATOS DISTRIBUIDAS TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 4. MANEJO DE TRANSACCIONES 4.1 Conceptos de Transacciones 4.2 Control de concurrencia 4.3 Serialización de transacciones

Más detalles

Respaldos y Recuperación

Respaldos y Recuperación Respaldos y Recuperación Clasificación de fallos Clasificación de fallos Respaldos y recuperación 1. Fallo en la transacción Error Lógico. La transacción no puede continuar con su ejecución normal a causa

Más detalles

Bases de Datos Distribuidas. Carlos A. Olarte BDII

Bases de Datos Distribuidas. Carlos A. Olarte BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Contenido 1 Introducción 2 Fragmentación de Datos 3 Transparencia de Red 4 Transacciones Distribuidas 5 Control de Concurrencia Introducción Por que distribuir

Más detalles

END; END; END; /* TRANSFER */ Propiedades de una transacción (ACID): Atómica: Todo/Nada : Se hace o no se hace, pero no se hace a medias.

END; END; END; /* TRANSFER */ Propiedades de una transacción (ACID): Atómica: Todo/Nada : Se hace o no se hace, pero no se hace a medias. Restauración Restauración, en un SBD, significa recobrar la BD en si misma, esto es, realmacenar la BD en un estado correcto después de que una falla ha hecho que el estado de esta sea incorrecto. Recuperación

Más detalles

Control de Concurrencia. Carlos A. Olarte BDII

Control de Concurrencia. Carlos A. Olarte BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Contenido 1 Introducción 2 Protocolos basados en Bloqueos 3 Protocolos basados en Grafos 4 Protocolos de Marcas temporales 5 Esquemas Multiversión 6 Granularidad

Más detalles

Transacciones. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

Transacciones. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile  andrea Transacciones M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2014 Objetivos de la Unidad Entender el concepto de transacciones. Transacciones Una transacción

Más detalles

Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Interbloqueos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Interbloqueos Modelo de Sistema Caracterización de Interbloqueos Métodos para el Manejo de Interbloqueos

Más detalles

Concurrencia. Paso de Mensajes Control de Recursos Deadlock

Concurrencia. Paso de Mensajes Control de Recursos Deadlock Concurrencia Paso de Mensajes Control de Recursos Deadlock Sincronizacion y comunicación basada en mensajes El envío de mensajes se usa tanto para sincronizar como para comunicar. Se necesita un proceso

Más detalles

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Interbloqueos Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Módulo 7: Interbloqueos Modelo de Sistema Caracterización de Interbloqueos

Más detalles

Uso de recursos compartidos

Uso de recursos compartidos Uso de recursos compartidos Cada proceso o hebra se ejecuta de forma independiente. Sin embargo, cuando varias hebras (o procesos) han de acceder a un mismo recurso, se ha de coordinar el acceso a ese

Más detalles

Unidad 1: Gestión de Procesos

Unidad 1: Gestión de Procesos Unidad 1: Gestión de Procesos Tema 2, Concurrencia: Interbloqueo e inanición. 2.1 Caracterización del interbloqueo y grafo de asignación de recursos. 2.2 Estrategias de tratamiento del interbloqueo: -

Más detalles

Concurrencia. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

Concurrencia. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile  andrea Concurrencia M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2014 Objetivos de la unidad Entender los diferentes protocolos de manejo de concurrencia. Técnicas

Más detalles

Concurrencia y Recuperabilidad

Concurrencia y Recuperabilidad Concurrencia y Recuperabilidad Paradigma Pesimista Lic. Gerardo Rossel 2016 Recuperabilidad Control de Concurrencia Pesimista-Optimista-SQL Serializabilidad Recuperabilidad Control de Concurrencia Pesimista-Optimista-SQL

Más detalles

Bases de Datos: Bases de Datos Distribuidas. Departamento de O.E.I. - U.P.M.

Bases de Datos: Bases de Datos Distribuidas. Departamento de O.E.I. - U.P.M. Diseño o y Optimización n de Bases de Datos: Bases de Datos Distribuidas Departamento de O.E.I. - U.P.M. 1. Introducción. ÍNDICE 2. Almacenamiento distribuido de datos. 3. Transparencia de la red. 4. Procesamiento

Más detalles

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004 2do. Cuatrimestre de 2004 Elementos de Bases de Datos Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] Clase 17 1er. Cuatrimestre

Más detalles

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada Sistemas Operativos Tema 11. Interbloqueo 1998-2008 José Miguel Santos C. Rubén García - Alexis Quesada 1 Contenidos Caracterización del interbloqueo Estrategias de tratamiento del interbloqueo Métodos

Más detalles

14. Control de la concurrencia

14. Control de la concurrencia 14. Control de la concurrencia Objetivos Conocer la problemática asociada a la concurrencia de transacciones en los sistemas de bases de datos Entender el significado de la seriabilidad y su aplicación

Más detalles

Porqué es dificil sincronizar en un S.D.?

Porqué es dificil sincronizar en un S.D.? 1 Porqué es dificil sincronizar en un S.D.? Problemas: - Información repartida - No existe timing global - Decisiones con información local - Puntos de falla? 2 Relojes Lógicos LAMPORT (1978) Eventos a

Más detalles

Sistemas Operativos (Parte 2)

Sistemas Operativos (Parte 2) Sistemas Operativos (Parte 2) M. en C. Mario Farias-Elinos e-mail: elinos@ci.ulsa.mx web: http://www.ci.ulsa.mx/~elinos Maestría en Tecnologías de Información Contenido Proceso Scheduller Thread Sincronización

Más detalles

MVCC: Control de Concurrencia Multiversión sobre. Bases de Datos. Comparación critica de. implementaciones existentes

MVCC: Control de Concurrencia Multiversión sobre. Bases de Datos. Comparación critica de. implementaciones existentes MVCC: Control de Concurrencia Multiversión sobre Bases de Datos. Comparación critica de implementaciones existentes Diaz Ramirez, Rodrigo Marcos Errecart, Rodolfo Emilio INDICE INDICE 1 - INTRODUCCION

Más detalles

Unidad IV. Transacciones planas: Consisten en una secuencia de operaciones primitivas encerradas entre las palabras clave BEGIN y END.

Unidad IV. Transacciones planas: Consisten en una secuencia de operaciones primitivas encerradas entre las palabras clave BEGIN y END. Unidad IV Manejo de transacciones. 4.1 Transacciones. A) Una transaccion en un sistema de gestion de bases de datos (SGBD), es un conjunto de ordenes que se ejecutan formando una unidad de trabajo, es

Más detalles

ANEXO I NIVELES DE AISLAMIENTO

ANEXO I NIVELES DE AISLAMIENTO ANEXO I NIVELES DE AISLAMIENTO INDICE 1) DIRTY READ... 3 1.1) En ORACLE... 3 1.1.1) READ UNCOMMITTED... 3 1.1.2) READ COMMITTED... 3 1.2) En SQL SERVER... 4 1.2.1) READ UNCOMMITED... 4 1.2.2) READ COMMITED...

Más detalles

Sincronización de procesos

Sincronización de procesos Sincronización de procesos Contenido Procesos concurrentes. El problema de la seccion critica Problemas clásicos de comunicación y sincronización. Mecanismos de comunicación y sincronización. DSO 2014

Más detalles

Sistemas Operativos Distribuidos. Sincronización

Sistemas Operativos Distribuidos. Sincronización Sincronización Sincronización en Sistemas Distribuidos Más compleja que en los centralizados Características de algoritmos distribuidos: La información relevante se distribuye entre varias máquinas. Debe

Más detalles

7. Control de la concurrencia

7. Control de la concurrencia 7. Control de la concurrencia Objetivos Conocer la problemática asociada a la concurrencia de transacciones en los sistemas de bases de datos Entender el significado de la serializabilidad y su aplicación

Más detalles

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases Elementos de Bases de Datos 2do Cuatrimestre de 2004 Elementos de Bases de Datos DptoCiencias e Ingeniería de la Computación Universidad Nacional del Sur Lic María Mercedes Vitturini [mvitturi@csunseduar]

Más detalles

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero Ingeniería Técnica en Informática Escuela Universitaria de Informática Universidad Politécnica de Madrid Asignatura: Administración de Bases de Datos Tema 5: Proceso de Transacciones Pedro P. Alarcón Cavero

Más detalles

CC BASES DE DATOS OTOÑO Clase 10: Transacciones y ACID. Aidan Hogan

CC BASES DE DATOS OTOÑO Clase 10: Transacciones y ACID. Aidan Hogan 3201-1 BASS D DATOS OTOÑO 2017 lase 10: Transacciones y AID Aidan Hogan aidhog@gmail.com Una cuenta bancaria Una cuenta bancaria integridad Restricciones sobre varias tablas (!!) A. P. A.? A. S.? TRANSAIONS

Más detalles

Tarea 5 Gestión de Archivos

Tarea 5 Gestión de Archivos 1 Tarea 5 1. Cuál es la diferencia entre un campo y un registro? Un campo es el elemento de datos básico. Un campo individual contiene un valor único, como el apellido de un empleado, una fecha o el valor

Más detalles

Concurrencia Condiciones de Carrera. Guillermo Román Díez

Concurrencia Condiciones de Carrera. Guillermo Román Díez Concurrencia Condiciones de Carrera Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Condiciones de Carrera 1/20 Condiciones de carrera Condición

Más detalles

Ejercicios (1, 2,3) Carrera: Licenciatura en Informática. Materia: Base de Datos II. Nombre del Alumno: Flores Osorio Josué.

Ejercicios (1, 2,3) Carrera: Licenciatura en Informática. Materia: Base de Datos II. Nombre del Alumno: Flores Osorio Josué. Ejercicios (1, 2,3) Carrera: Licenciatura en Informática Materia: Base de Datos II Nombre del Alumno: Grupo: 501 Semestre: Quinto Tabla de contenido Introducción... 3 Desarrollo... 4 Ejercicio No. 1...

Más detalles

Tema 6. Gestión de Interbloqueo

Tema 6. Gestión de Interbloqueo Tema 6. Gestión de Interbloqueo Introducción (I) Protocolo de acceso a recursos compartidos: Solicitud. Utilización. Liberación. El sistema operativo suspende a los procesos cuyas solicitudes no pueden

Más detalles

Procesamiento de Transacciones

Procesamiento de Transacciones Procesamiento de Transacciones Competencias específicas Explicar el concepto, propiedades y estados de las transacciones en sistemas de bases de datos. Identificar los problemas asociados a la concurrencia

Más detalles

Unidad 8. Bases de Datos en el Modelo Cliente Servidor

Unidad 8. Bases de Datos en el Modelo Cliente Servidor Unidad 8 Bases de Datos en el Modelo Cliente Servidor El Modelo Cliente Servidor En la comunicación TCP/IP las comunicaciones entre computadoras se manejan a través del modelo Cliente Servidor Este concepto

Más detalles

Control de Concurrencia. Control de Concurrencia. Operaciones Conflictivas. AIslamiento (+ Consistencia) Control de Concurrencia

Control de Concurrencia. Control de Concurrencia. Operaciones Conflictivas. AIslamiento (+ Consistencia) Control de Concurrencia Control de Concurrencia Objetivo Forzar el aislamiento de transacciones conflictivas mediante la exclusión mutua. Preservar la consistencia de la BD mediante la ejecución adecuada de las transacciones.

Más detalles

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004 2do. Cuatrimestre de 2004 Elementos de Bases de Datos Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] Clase 21 1er. Cuatrimestre

Más detalles

Control de concurrencia en bases de datos relacionales

Control de concurrencia en bases de datos relacionales OpenStax-CNX module: m18939 1 Control de concurrencia en bases de datos relacionales Miguel-Angel Sicilia This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Sincronización en Sistemas Distribuidos Sincronización, Concurrencia y Transacciones Más compleja que en los centralizados Propiedades idd de algoritmos ditibid distribuidos: a información relevante se

Más detalles

Concurrencia de Procesos

Concurrencia de Procesos Concurrencia de Procesos Dos o mas procesos, se dice que son concurrentes o paralelos, cuando se ejecutan al mismo tiempo. Esta concurrencia puede darse en un sistema con un solo procesador (pseudo paralelismo)

Más detalles

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo) Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional () adicional () Preparado Preparado

Más detalles

Sistemas operativos. Tema 6: Interbloqueo ( (deadlock)

Sistemas operativos. Tema 6: Interbloqueo ( (deadlock) Sistemas operativos Tema 6: Interbloqueo ( (deadlock) Concurrencia de procesos Conceptos de concurrencia y exclusión mutua. Herramientas de sincronización. n. Comunicación n entre procesos. Interbloqueo.

Más detalles

Conceptos sobre procesamiento de transacciones

Conceptos sobre procesamiento de transacciones Conceptos sobre procesamiento de transacciones Tema 3: Bases de Datos II Contenidos del tema 3 1. Introducción 2. Propiedades deseables en las transacciones. 3. Conceptos de transacciones y sistema. 4.

Más detalles

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS PROCESOS DISTRIBUIDOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen El proceso cliente servidor es la clave para comprender el potencial de los sistemas de información y las redes

Más detalles

CC BASES DE DATOS PRIMAVERA Clase 12: Implementación de ACID. Aidan Hogan

CC BASES DE DATOS PRIMAVERA Clase 12: Implementación de ACID. Aidan Hogan 3201-1 BASS D DATOS PRIMAVRA 2016 lase 12: Implementación de AID Aidan Hogan aidhog@gmail.com Transacciones Una transacción es un conjunto de operaciones que se ejecutan de manera atómica (es decir, como

Más detalles

Clase 7: Recuperación de BD

Clase 7: Recuperación de BD Bases de Datos I Cursada 2008 Clase 7: Recuperación de BD Facultad de Ciencias Exactas Universidad Nac. Centro de la Pcia. de Bs. As. 1 Introducción a la Seguridad BASES DE DATOS I Una base de datos es:

Más detalles

Recuperación. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Recuperación. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Recuperación Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Recuperación de transacciones Está vinculado a la noción de procesamiento de transacciones. Operaciones de SQL COMMIT

Más detalles

Control de Concurrencia

Control de Concurrencia Control de Concurrencia Objetivo BASES DE DATOS I Forzar el aislamiento de transacciones conflictivas mediante la exclusión mutua. Preservar la consistencia de la BD mediante la ejecución adecuada de las

Más detalles

Sistemas Distribuidos. Sincronización, Concurrencia y Transacciones

Sistemas Distribuidos. Sincronización, Concurrencia y Transacciones Sincronización, Concurrencia y Transacciones 2 Sincronización en Sistemas Distribuidos Más compleja que en los centralizados Propiedades de algoritmos distribuidos: La información relevante se distribuye

Más detalles

Programación Concurrente Recopilación de teoría referente a la materia

Programación Concurrente Recopilación de teoría referente a la materia UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a

Más detalles

Sistemas Operativos. MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores

Sistemas Operativos. MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores Sistemas Operativos MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores Sistema Operativo Un S.O. explota los recursos hardware de uno o mas procesadores para proporcionar un conjunto de servicios

Más detalles

Grandes de Bases de Datos. Alto desempeño Clústers

Grandes de Bases de Datos. Alto desempeño Clústers Grandes de Bases de Datos Alto desempeño Clústers Introducción Clústers 2 o más equipos trabajando en conjunto para la obtención de un fin común Clústers No todos son iguales Clúster de balanceo de carga

Más detalles

SISTEMA DE FICHEROS EN UNIX

SISTEMA DE FICHEROS EN UNIX SISTEMA DE FICHEROS EN UNIX SISTEMA DE FICHEROS EN UNIX CONTENIDOS: - El subsistema de ficheros en la arquitectura general de Unix. - El buffer caché. - Estructura del buffer caché. - Funcionamiento del

Más detalles

Transacciones. Carlos A. Olarte BDII

Transacciones. Carlos A. Olarte BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Outline 1 2 Ejecuciones Concurrentes 3 Secuencialidad en Cuanto a Conflictos 4 Secuencialidad en Cuanto a Vistas 5 Recuperabilidad 6 en SQL Transacción Definición

Más detalles

Sistemas Operativos Distribuidos. Concurrencia y Transacciones

Sistemas Operativos Distribuidos. Concurrencia y Transacciones Sincronización, Concurrencia y Transacciones Sincronización en Sistemas Distribuidos Más compleja que en los centralizados Propiedades de algoritmos distribuidos: La información relevante se distribuye

Más detalles

PROCESAMIENTO DISTRIBUIDO

PROCESAMIENTO DISTRIBUIDO Pág. 1 INTRODUCCIÓN PROCESAMIENTO DISTRIBUIDO Arquitectura de comunicaciones: Software básico de una red de computadoras Brinda soporte para aplicaciones distribuidas Permite diferentes Sistemas Operativos

Más detalles

12.6- Control de Transacciones para Bases de Datos Distribuidas

12.6- Control de Transacciones para Bases de Datos Distribuidas 2013 12.6- Control de Transacciones para Bases de Datos Distribuidas Tópicos de Base de Datos Lic. Angélica Avalos Cano. Presentado por: Lucia Castillo Castellanos. Lucia Gabriela Cordero Gallegos. Arelhi

Más detalles

Bases de Datos Distribuidas

Bases de Datos Distribuidas Bases de Datos Distribuidas Gestión de la Información en Juegos y Realidad Virtual Máster en Informática Gráfica, Juegos y Realidad Virtual Índice Introducción Definición y ventajas Objetivos Aspectos

Más detalles

1. Sistema Operativo Unix

1. Sistema Operativo Unix . Sistema Operativo Unix. Introducción al S.O. Unix y su entorno.2 Subsistema de Archivos.3 Subsistema de Procesos.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad

Más detalles

Tema 7. Entrada / Salida

Tema 7. Entrada / Salida Tema 7 Entrada / Salida Problemática Entrada/Salida Elementos claves en un computador: Procesador, memoria y módulos de E/S Cada módulo de E/S se conecta al bus del sistema y controla a uno o a más periféricos

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

ISO Tema 8,

ISO Tema 8, ISO Tema 8, 2017-2018 Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos 13 de abril de 2018 Modificado el 27 de abril de 2018 de la presentación 1 2 3 4 5 6 7 2 / 32 1 2 3 4 5 6 7 3 / 32

Más detalles

El problema del interbloqueo

El problema del interbloqueo Programación Concurrente en Linux El problema del interbloqueo Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Inanición e interbloqueo 2. Modelo del interbloqueo

Más detalles

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

Más detalles

Sistemas Gestores de Base de Datos Distribuidas

Sistemas Gestores de Base de Datos Distribuidas Sistemas Gestores de Base de Datos Distribuidas Un Sistema de Gestión de Bases de Datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en

Más detalles

Lección 6: Ejemplos de programación con semáforos

Lección 6: Ejemplos de programación con semáforos Lección 6: Ejemplos de programación con semáforos El problema de la cena de los filósofos El problema de los lectores y escritores Ejercicios Gestión de concurrencia mediante paso de testigo (implementación

Más detalles

Tema 3: Planificación de recursos

Tema 3: Planificación de recursos ema 3: Planificación de recursos 1. aracterización del interbloqueo 2. Modelación del interbloqueo 3. Métodos para tratar el interbloqueo istemas Operativos II Dpto. Languajes y istemas Informáticos. Universidad

Más detalles