Please enable JavaScript.
Coggle requires JavaScript to display documents.
Transacciones, protocolo de tres fases (3PC) - Coggle Diagram
Transacciones
Control de concurrencia
Asegura que la gestión de un servidor sea consistente
Objetos "Recuperables"
Trabaja conjunto o en unión con una memoria persistente
Sincronización sencilla
Servidor diseñado cuidadosamente
operaciones realizadas en nombres de diferentes clientes
se puede provocar interferencia entre clientes
esto produce valores incorrectos
Operación atómica en el servidor
trabaja a base de hilos que son ejecutados concurrentemente por muhos usuarios
en casos de que un hilo invoque a un objeto síncrono no se podre seguir realizando la labor impuesta
se le considera operación atómica por que esta libre de interferencias
Mejora de la colaboración del cliente mediante sincronización de las operaciones del servidor
se estructura la forma operacional
se forma una cola con el fin de llevar un orden de entrada y salida
a las peticiones se le establecen valores
wait
notify
Modelos de fallos para transacciones
básico en cuestión de que es mejor aplicado en sistemas estables
Transacciones
secuencias de solicitudes
libre de interferencias
obligación de completar operaciones
Propiedades
Atomicidad
consistencia
aislamiento
durabilidad
se obtiene una cooperación de objetos recuperables y un coordinador
la operación finaliza cundo el cliente hace una petición par cerrar transacción
petición abordada, las partes implicada deben asegurar la invisibilidad de datos, para garantizar seguridad de próximas transaccciones
acción de servicios relacionada con la ruptura de un proceso
proceso de servidor transacción de falla
remplazado en el momento crucial
proceso nuevo servidor aborta todas las operaciones, para entrar a un modo de recuperación
la recuperacion se da para el restablecimiento de valores de los objetos a los valores de una transacción finiquitada
servidores con tiempo limite de repuestas
acciones del cliente relativas a la ruptura del proceso servidor
cliente tiene la capacidad de saber si un servidor falla, mientras hay una transacción en progreso
debido a las excepciones presentadas
servidor de fallo es cambiado durante el proceso de transacción, ya no será valido el proceso
los clientes deben poseer un plan para finalizar o abandonar la tareas que ejecutaba
Control de Concurrencia
sus efectos en la variable de instancia que registra el balance de la cuenta que es atomica
Problemas
Actualizaciones perdidas.
Recuperaciones inconsistentes
Equivalencia secuencial.
Operaciones conflictivas
Recuperacion transacciones abortadas
Los servers registran los efectos de todas las transacciones finalizadas
problemas asociados con transacciones abortadas son:
Recuperación de transacciones
Lecturas sucias.
Abortos en cascada
Escrituras prematuras
garantizar conclusiones correctas en un esquema de recuperación las operaciones de escritura son retrasada hasta que sean abordadas o abortadas
Para ello existen mecanismos como:
Ejecuciones estrictas de las transacciones
Versiones provisionales
Transacciones anidadas
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.
Bloqueos
transacciones deben planificarse de forma que sus efectos sobre datos compartidos sean secuencialmente equivalentes
servidor puede conseguir la equivalencia secuencial de las transacciones secuenciando el acceso a los objetos
Bloqueos Indefinidos
estado en el que cada miembro de un grupo de transacciones está esperando por algún otro miembro para liberar un bloqueo.
deben ser prevenidos pero cuando esto no puede realizarse debe ser detectados para poder romper el ciclo abortando una transacción bloqueante
método timeouts
aproximaciones para incrementar concurrencia
Bloqueo de dos versiones
permite que una transacción escriba versiones tentativas de objetos mientras otras transacciones leen la versión consumada de los mismos objetos.
Bloqueos jerárquicos
granularidad adecuada para una operación no es apropiada para otra, resulta útil permitir que coexistan bloqueos de granularidad mezclada
Control optimista de la concurrencia
se basa en la observación de que, en la mayoría de las aplicaciones, la similitud entre las transacciones de dos clientes que acceden al mismo objeto es baja
admite que los servicios resulten como si no hubiera posibilidad de conflicto con distintas transacciones hasta que el cliente perfeccione su labor y anuncie una petición de interrupción de la transacción
poseen transacciones que debe ser relanzada desde el cliente, cada transacción tienen la siguientes fases:
Fase de trabajo
Fase de validación
Fase de actualización
Ordenación por marcas de tiempo
la operación no puede ser validada, la transacción es abortada inmediatamente y puede ser reiniciada por el cliente
define su posición en la secuencia de tiempo de las transacciones
las transacciones pueden ser ordenadas totalmente de acuerdo con sus marcas de tiempo
Distibuidas
una transacción plana o anidada que accede a objetos gestionados por múltiples servidores
El coordinador de una transacción anidada
Llevan a cabo peticiones como fragmento de una transacción distribuida requieren el poder de comunicarse entre ellos para coordinar su labores cuando se ejecuta la transacción
transacción plana o anidada
invocando varios servidores diferentes para realizar operaciones
Protocolos de consumacion atómicos
coordinador notifique a todos los colaboradores en la transacción la petición de consumación o de abortar, y extienda redundando la petición hasta que todos ellos tengan enviado un acuse de recibo enseñando que la han llevado a cabo.
no permite a un servidor tomar la decisión unilateral de abortar una transacción.
protocolos:
protocolo de commit en dos fases (2PC)
Fases:
Votación
El coordinador envía un mensaje query to a todos los participantes y espera hastarecibir una respuesta de todos ellos
Los participantes ejecutan su porción local de la transacción
Los participantes escriben en sus archivos de log
Los participantes contestan con un mensaje deagreement (voto si) si tubo éxito o un Mensaje de abort (voto no) si tubo algún fallo que leimpidiera completar su parte.
conclusion
El coordinador envía un mensaje de commit A todos los participantes.
Cada participante completa su porción de la transacción y libera los recursos bloqueados durante la transacción
Cada participante envía un mensaje de acknowledgment al coordinador.
Protocolo bloqueante
Después de que un participanteenvía un mensaje de agreement al coordinador, éste se bloquea hasta que recibe un mensaje de commit or rollback
Control de Concurrencia Optimista transacción Distribuida
validada por una colección de servidores independientes, cada uno de los cuales valida las transacciones que acceden a sus propios objetos
La validación de todos los servidores tiene lugar durante la primera fase del protocolo de consumación de dos fases
Control de Concurrencia Optimista En el caso de transacciones distribuidas optimistas, cada servidor aplica en paralelo un protocolo de validación.
Control de Concurrencia transacción Distribuida
servidores que mantiene consistencia, cuando son accedidos por transacciones concurrente
CONTROL DE CONCURRENCIA ORDENACIÓN DE MARCAS TEMPORALES
Se utiliza para modificar el protocolo básico de ordenación, con el fin de proporcionar un mayor grado de concurrencia a las operaciones de escritura obsoletas
Recuperacion de transacciones
esto se da Para que el sistema se pueda recuperar ante fallos se necesita grabar cada operación
protocolo de tres fases (3PC)
se introduce un timeout para realizar la transacción (o abortarla) asegurando de este modo que siempre se liberarán los recursos bloqueados.