Módulo 7 Transacciones Distribuidas



Documentos relacionados
SISTEMAS DE RECUPERACIÓN

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Asignación de Procesadores

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

Arquitectura de sistema de alta disponibilidad

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

Manual del Usuario. Sistema de Help Desk

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Administración de Bases de Datos

1. Que es un nombre de dominio? Es un conjunto de caracteres alfanuméricos utilizados para identificar una computadora determinada en Internet.

Estructuras de Sistemas Operativos

TEMA 5 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 5. CONFIABILIDAD

Introducción a la Firma Electrónica en MIDAS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

PROGRAMA DE AHORRO JOVEN PARA VIVIENDA

Utilidades de la base de datos

Sistemas de Operación II

Elementos requeridos para crearlos (ejemplo: el compilador)

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

4. Programación Paralela

Master en Gestion de la Calidad

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Incidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones.

Capítulo 5. Cliente-Servidor.

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

Transacciones y bloqueos en SQL-Server

TRANSACCIONES DISTRIBUIDAS

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Bases de Datos 2. Teórico

Tema 6. Transacciones y seguridad

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Guía sobre los cambios del nuevo sitio Web de Central Directo

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

CONSTRUCCIÓN DEL PROCESO ADMINISTRADOR DE PROYECTOS SEIS SIGMA Bizagi Process Modeler

Introducción. Componentes de un SI. Sistema de Información:

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Políticas y Seguridad de la Información ECR EVALUADORA PREFIN S.A

El modelo de ciclo de vida cascada, captura algunos principios básicos:

Estructura de Bases de datos. Leonardo Víquez Acuña

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

Concurrencia. Primitivas IPC con bloqueo

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos

Procedimiento de Sistemas de Información

NOTAS TÉCNICAS SOBRE EL SIT: Documentos de Gestión

28.- Manejo de los Feriados

Novedades en Q-flow 3.02

Definición del Sistema de Gestión de Seguridad de la Información (SGSI) ALCALDÍA DE SANTA ROSA DE OSOS

DE VIDA PARA EL DESARROLLO DE SISTEMAS

UNIVERSIDAD AUTÓNOMA DEL CARIBE

Oficina Online. Manual del administrador

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Estado: Aprobación Versión: 2.0 Fecha: 04/11/2009 Página 1 de 9 Documento: A5_Politica_Seguridad_V2

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Históricos Impresión de Facturas

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Operación 8 Claves para la ISO

ECOPETROL S.A. Proceso para el control de cambios [[7 de Marzo de 2014]] Versión 1.0

5(&83(5$&,Ð1'(&$Ì'$6'(/6,67(0$

COPEG 4. SISTEMA DE GESTIÓN DE CALIDAD

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

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER

XXVI REUNION DE SISTEMATIZACION DE BANCOS CENTRALES AMERICANOS E IBERICOS. La Habana, Cuba, 26 al 30 de octubre de 1998

Que es normalización? Normalización de una base de datos Grados de normalización: Primera Forma Grados de normalización: Segunda Forma Grados de

ADMINISTRACIÓN DE BASES DE DATOS. Control de Concurrencia y Recuperación

Manual de Usuarios Contratistas y Consultores

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

El monto de recursos examinados corresponde al de los saldos de títulos de crédito de la Dirección Regional Norte, que fueron los siguientes:

CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Bizagi Process Modeler

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

2.1 Multibase. Información mas detallada sobre este sistema se encuentra en [Ceri y Pelagatti 1985].

Administración Local Soluciones

2 EL DOCUMENTO DE ESPECIFICACIONES

Sistema de Recuperación. Carlos A. Olarte BDII

Metodología básica de gestión de proyectos. Octubre de 2003

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

LABORATORIO 10. COPIAS DE SEGURIDAD, RESTAURACIÓN Y RECUPERACIÓN DE UNA BD

Modificación de la Disposición Vinculada Nº 04 del Capítulo III De los Emisores y Valores del Reglamento Interno de CAVALI

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Capitulo 3. Desarrollo del Software

SistemA Regional de Información y Evaluación del SIDA (ARIES)

Programa de Ayuda EMCS Instalación Versión SQL Server Versión Marzo 2010

BANCO NACIONAL DE PANAMÁ, BANCO DE DESARROLLO AGROPECUARIO Y BANCO HIPOTECARIO NACIONAL

MANUAL WEBSOPORTE DE IRIS-EKAMAT

RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno Fuente: Wikipedia

Transcripción:

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 a las fallas. Cintas de entrada Inventario previo Computadora Nuevo inventario Cinta de salida Actualización del día

El modelo transaccional BEGIN_TRANSACTION reserve BUE -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> El Cabo; END_TRANSACTION (a) BEGIN_TRANSACTION reserve BUE -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> El Cabo full => ABORT_TRANSACTION (b) a) Commit de una Transacción para reservar tres vuelos b) Aborto de la transacción cuando el tercer vuelo no esta disponible Qué es una transacción? Base de datos Sistema de archivos Objetos Cliente

Transacciones Atómicas Propiedades Serializabilidad: Las transacciones concurrentes no interfieren unas con otras. Atomicidad: Desde el mundo exterior la transacción es indivisible. (todo o nada). Permanencia: Una vez que la transacción se ejecuta los cambios son permanentes. Planas Tipos de Transacciones Anidadas

Transacciones Anidadas T : transacción de nivel superior T 1 = abresubtransacción T 2 = abresubtransacción T 1 : T 2 : abresubtransacción abresubtransacción T 11 : T 12 : prov. commit prov. commit prov. commit T 21 : abresubtransacción abresubtransacción T 211 : commit abort prov. commit prov.commit Se usa el término transacciones distribuidas para referirse a transacciones planas o anidadas que acceden a objetos administrados por múltiples servidores. Cuando una transacción distribuida llega a su fin, la propiedad de atomicidad de las transacciones requiere que todos los servidores involucrados produzcan el commit (consumación) de la transacción o todos ellos la abortan. La manera en que el coordinador logra ésto, depende del protocolo elegido.

Transacciones distribuidas Transacción anidada Transacción distribuida subtransacción subtransacción subtransacción subtransacción BD aerolíneas Dos BDs diferentes (independientes) BD hotel BD distribuida Dos partes fisicamente separadas de la misma DB Una transacción anidada Una transacción distribuida Transacciones distribuidas planas y anidadas En una transacción plana, el cliente hace requerimientos a más de un servidor. Cada transacción accede a los objetos en los servidores secuencialmente. El cliente de la transacción plana espera completar todos sus requerimientos antes de pasar a la próxima. En una transacción anidada, la transacción de mayor nivel puede abrir subtransacciones y, a su vez cada subtransacción puede abrir otras en niveles más bajos de anidamiento.

Transacción plana X Transacción anidada T 11 M T T Y Cliente T T 1 X T 12 T 21 N T 2 Cliente Z Y P T 22 Ejemplo de una transacción bancaria anidada 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.

X Cliente T 1 A a.retiro(10) T Y T = abretransacción abresubtransacción a.retiro(10); abresubtransacción b.retiro(20); abresubtransacción c.depósito(10); abresubtransacción d.depósito(20); cierratransacción T 2 Z T 3 T 4 B C D b.retiro(20) c.depósito(10) d.depósito(20) El coordinador de una transacción distribuida Los servidores que ejecutan requerimientos que son parte de una transacción distribuida necesitan poder comunicarse con otros para coordinar sus acciones cuando la transacción commits. Un clienta comienza la transacción enviando un requerimiento abretransacción a un coordinador en algún servidor. El coordinador que es contactado lleva adelante la abretransacción y retorna un identificador al cliente (éste debe ser único). El coordinador que abre la transacción se convierte en el coordinador para la transacción distribuida.

Cada uno de los servidores que administra un objeto accedido por la transacción es un participante en la transacción, se llamará participante. Los participantes son responsables en la cooperación con el coordinador para llevar adelante el protocolo de commit de la transacción. Durante el progreso de la transacción, el coordinador registra los participantes y éstos registran al coordinador. Ejemplo: Un cliente cuya transacción (plana) involucra las cuentas A, B, C y D en los servidores SucX, SucY y SucZ. La transacción T del cliente transfiere $3 de la cuenta B a D y $4 de A a C. T=abreTransacción a.retiro(4); c.depósito(4); b.retiro(3); d.depósito(3); cierratransacción abretransaction cierratransacción Cliente Nota: el coordinador está en uno de los servidores, p.e. SucX T. b.depósito(t,3); join join join participante A SucX participante B SucY participante C D SucZ a.retiro(4); b.retiro(3); c.depósito(4); d.depósito(3);

Implementación - Espacio privado Indice Indice original Espacio privado Cuadros libres a) Indice y bloques de disco (3) de un archivo b) La situación luego que una transacción ha modificado el bloque 0 y agregado el bloque 3 c) Luego del commit Escritura con bitácora x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y = y + 2 x = y * y; END_TRANSACTION; (a) Bitácora [x = 0 / 1] (b) Bitácora [x = 0 / 1] [y = 0/2] (c) Bitácora [x = 0 / 1] [y = 0/2] [x = 1/4] (d) a) Una transacción b) d) La bitácora luego de ejecutar la sentencia

Protocolos de Commit atómicos Una transacción llega a su fin cuando los requeri-mientos del cliente han llegado a commit o abort. Los protocolos pueden ser: Commit de una fase atómico Commit de dos fases atómico Commit de tres fases atómico 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 a todos los participantes de la transacción y mantenerse repitiendo el requerimiento hasta que todos ellos tengan conocimiento de que todos lo han llevado a cabo.

Estados de commit de una sola fase (participante) Inicial Send vote-commit Desea commit Receive commit Commited Send vote-abort o Receive abort Abortado Receive abort Participante Estados de commit de una sola fase (coordinador) Inicial Receive all vote-commit Debe commit Send commit Commited Receive any vote-abort Debe abortar Send abort Coordinador Abortado

Bloqueo de transacciones Pueden ocurrir cuando hay fallas en la red. La situación se puede dar con una transacción que no ha fallado sin embargo está bloqueada esperando un commit o abort. Qué decisiones podría tomar T i cuando detecta (timeout) que está bloqueada? commit sin autorización abortar. Commit de dos fases atómico Hay voto seguido de decisión. Se reduce la posibilidad de bloqueo. Diferencia con el anterior: si la transacción no recibe respuesta (timeout) entra en un estado de recuperación. Para evitar el bloqueo la T i hace un help-me a los demás participantes.

Cuando un participante recibe un help-me: Un participante en estado committed replica commit. Lo hace en forma segura porque ya recibió el commit del coordinador. Un participante en estado abortado envía abort porque ya sabe que la transacción va a abortar. Si el participante no ha votado aún (en estado inicial) puede ayudar a resolver el problema si decide arbitrariamente abortar (envía abort y vote-abort) Si el participante está en esperando commit no puede resolver el problema, no responde. Otra modificación es que el coordinador envía un beginvote a todos los participantes. Si la recuperación del estado desea commit es necesaria, cada transacción debe o necesita conocer los restantes participantes.

Estados de commit de dos fases (participante) Inicial Timeout Receive Send begin-vote vote-commit Decidiendo Send vote-abort Receive abort Recuperar Desea commit Timeout Receive commit Commited Abortado Receive abort Send help-me Bloqueado Receive commit Estados de commit de dos fases (coordinador) Inicial Send begin-vote Timeout o Receive any vote-abort Esperando Debe abortar Send abort Abortado Receive all vote-commit Debe commit Send commit Commited

Commit para transacciones Anidadas T : transacción de nivel superior T 1 = abresubtransacción T 2 = abresubtransacción T 1 : T 2 : abresubtransacción abresubtransacción T 11 : T 12 : prov. commit prov. commit prov. commit T 21 : abresubtransacción abresubtransacción T 211 : commit abort prov. commit prov.commit Commit de tres fases atómico Un participante no commit hasta que todos los participantes commit y además hasta que no sabe que todos los participantes también lo saben.

Control de Concurrencia Transacciones Organización general de administradores para manejo de transacciones. READ / WRITE Administrador BEGIN_TRANSACTION transacciones END_TRANSACTION Planificador Administrador datos LOCK / RELEASE u Operaciones con estampillas de tiempo Ejecuta read / write Control de Concurrencia Administrador transacciones Organización general de administradores para manejo de transacciones distribuidas. Planificador Planificador Planificador Administrador datos Administrador datos Administrador datos Máquina A Máquina B Máquina C

Control de Concurrencia en Transacciones Distribuidas Cada servidor administra un conjunto de objetos y es responsable de mantener la consistencia cuando son accedidos por transacciones concurrentes. Cada servidor aplica un control de concurrencia a sus objetos. Esto quiere decir que si la transacción T es antes que la U en el acceso conflictivo a un objeto en un servidor entonces deben ser hechas en tal orden en todos los servidores cuyos objetos son accedidos en manera conflictiva por T y U. Locking En una transacción distribuida un lock sobre un objeto es mantenido localmente (en el mismo servidor). El administrador local de locks puede decidir si otorga un lock o hace que la transacción que lo requirió espere. Sin embargo no puede liberar ningún lock mientras la transacción que los tiene no haya terminado (commit o aborto). Cuando es usado el locking para control de concurrencia, los objetos permanecen con el lock y no están disponibles para otras transacciones durante el protocolo de commit atómico.

Dado que los administradores de locks en diferentes servidores otorgan locks independiente de los demás, es posible que diferentes servidores impongan diferente orden sobre las transacciones. Considerese el siguiente entrelazado de las transacciones T y U en los servidores X e 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 Se tiene T antes que U en un servidor y U antes que T en el otro. Estos órdenes diferentes pueden llevar a una dependencia cíclica entre transacciones que deriva en una situación de interbloqueo. 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.

Control de Concurencia por Estampillas de Tiempo En transacciones distribuidas se requiere que cada coordinador genere una única estampilla de tiempo global. Esta estampilla de tiempo es dada al cliente por el primer coordinador accedido por la transacción. La estampilla de tiempo de la transacción es pasada al coordinador de cada servidor en los cuales se realizan operaciones de la transacción. Los servidores son conjuntamente responsables de que las transacciones distribuidas sean realizadas de manera serial. Por ejemplo: si la versión de un objeto accedido por la transacción U llega al commit después de la versión accedida por T en un servidor, entonces si T y U acceden al mismo objeto en otros servidores, deben llegar al commit en el mismo orden. Para lograr el mismo orden en todos los servidores, los coordinadores deben estar de acuerdo en el ordenamiento de sus estampillas de tiempo. Una estampilla de tiempo consiste de un par: <estampilla de tiempo local,identificador del servidor> Se necesita sincronización de relojes.

Cuando el ordenamiento por estampillas de tiempo es usado para el control de concurrencia los conflictos son resueltos cuando cada operación es efectuada. Si la resolución del conflicto requiere que una transacción sea abortada, el coordinador será informado y abortará las transacciones de todos los participantes. Control de Concurrencia Optimista Cada transacción es validada antes de permitir el commit. Una transacción distribuida es validada por una colección de servidores independientes, cada uno de los cuales valida las transacciones que acceden a sus objetos propios. Sea las transacciones T y U entrelazadas, las cuales acceden a los objetos A y B en los servidores X e Y respectivamente: T U Read(A) en X Read(B) en Y Write(A) Write(B) Read(B) en Y Read(A) en X Write(B) Write(A)

Las transacciones acceden a los objetos en el orden T antes que U en el servidor X y U antes que T en el servidor Y. Si se supone que T y U empiezan la validación al mismo tiempo, el servidor X valida T primero y el servidor Y valida U primero. Solo una transacción puede realizar la fase de validación y actualización a la vez. En el ejemplo, cada servidor está inhabilitado de validar la otra transacción hasta que la primera haya completado. Esto es un interbloqueo de commit. Ejemplo de interbloqueo distribuido U V W d.deposita(10) lock D a.deposita(20) lock A en X b.extrae(30) espera en Y b.deposita(10) lock B en Y c.extrae(20) espera en Z c.deposita(30) a.extrae(20) lock C en Z espera en X

W Mantenido por Espera por W C D A Z Espera por V Mantenido por Mantenido por B X Mantenido por Espera por U V U Y Fin Módulo 7 Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia San Juan Bosco