Documentos de Académico
Documentos de Profesional
Documentos de Cultura
S.N.E.S.T. D.G.E.S.T.
INSTITUTO TECNOLGICO
DEL ISTMO
MATERIA:
Base de Datos Distribuidas.
CATEDRATICO:
8O
I N D I C E.
Unidad 4 Mapeo de Transacciones.3
4.1 Transacciones....................................................................3
4.1.1 Estructura de Transacciones..................9
4.1.2 Ejecucin de Transacciones...........................................11
4.1.3 Estructura de Transacciones..........................................15
4.3 Confiabilidad..24
4.3.1 Conceptos bsicos de confiabilidad.25
4.3.2 Protocolos REDO/UNDO27
4.3.3 Checkpoints...30
4.3.4 Protocolos 2Pc de confiabilidad distribuida.32
transaccin en
un Sistema de Gestin de
Bases
de Datos
transacciones
construccin
de
son
mecanismos
sistemas
que
confiables
ayudan
mediante
simplificar
procesos
la
que
transaccin
es
una
coleccin
de
operaciones
que
hacen
se
dan
pero
en
un
estado
inconsistente.
Lo
UPDATE J
SET BUDGET = BUDGET*1.1
WHERE JNAME = "CAD/CAM"
Esta consulta puede ser especificada, usando la notacin de SQL, como una
transaccin otorgndole un nombre:
Begin_transaction ACTUALIZA_PRESUPUESTO
begin
UPDATE J
SET BUDGET = BUDGET*1.1
WHERE JNAME = "CAD/CAM"
end.
.
Ejemplo 2:
Considere una agencia de reservaciones para lneas areas con las
siguientes relaciones:
FLIGHT( FNO, DATE, SRC, DEST, STSOLD, CAP )
CUST( CNAME, ADDR, BAL )FC( FNO, DATE, CNAME, SPECIAL )
Una versin simplificada de una reservacin tpica puede ser imp
l e m e n t a d a mediante la siguiente transaccin:
Begin_transaction Reservacin
Begin
Input ( flight_no, date, customer_name );
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date
EXEC SQL INSERT
INTO FC( FNAME, DATE, CNAME,SPECIAL )
Atomicidad:
pero
en caso
de
fallas
no
o
se realiza
abortada.
ninguna.
En
el
Una
caso
d e l c o m p r o m i s o s e i n s t a l a n t o d a s l a s actualizaciones y en el aborto
se descartan todas las actualizaciones.
Consistencia:
Aislamiento:
Durabilidad:
8
Por ejemplo:
Begin_transaction Reservacin
End
Por ejemplo:
Begin_transaction Reservacin
Begin_transaction Vuelo
End. (Vuelo)
9
Begin_transaction Hotel
End
End.
Una transaccin anidada da otra transaccin conserva las mismas
propiedades que la de sus padres, esto implica, que puede contener as
mismo transacciones dentro de ella.
Existen restricciones obvias
en una
transaccin
anidada:
debe
empezar despusq u e s u p a d r e y d e b e t e r m i n a r a n t e s q u e
l . M s a n , e l c o m m i t d e u n a subtransaccin
es
c o n d i c i o n a l a l c o m m i t d e s u p a d r e , e n o t r a s p a l a b r a s , s i e l padre
de una o varias transacciones aborta, las subtransacciones hijas
tambin sern abortadas.
Las
transacciones
anidadas
brindan
un
nivel
ms
alto
de
es
m a y o r
s o l a
recuperarse
posible
c o n c u r r e n c i a
t r a n s a c c i n .
de de
fallas
As
d e n t r o
tambin,
es
de forma independiente
d e
posible
de cada
q u e
s e a
e l
e l
c o s t o
d e
l a
r e c
m e n o r .
10
antes
de
que
pueda
ser
escritoe n t o n c e s s e t e n d r n t r a n s a c c i o n e s R e s t r i n g i d a s . S i l
a s t r a n s a c c i o n e s s o n restringidas a que todas las acciones de lectura se
realicen antes de las acciones de escritura entonces se les conoce como de
Dos Pasos. Finalmente existe un modelo de accin para transacciones
restringidas en donde se aplica aun ms la restriccin de que cada par
<read, write> tiene que ser ejecutado de manera atmica.
compromiso.
Protocolos de confiabilidad.
En
transacciones
distribuidas
es
necesario
introducir
medios
de
comunicacine n t r e l o s d i f e r e n t e s n o d o s d e u n a r e d p a r a g a r a
n t i z a r l a a t o m i c i d a d d e l a s transacciones.
11
de
modificaciones
(transacciones)
un
se
define
un
punto
de
inicio
un
punto
nada
u n
s i s t e m a
q u e
p e r m i t e
e l
procesamiento
12
2.
Ejecutar
transacciones
calendarizadas: Permite el proceso de transacciones asignndoles
tiempos de procesamiento el cual permite incrementar el rendimiento del
sistema
ya
que
se ejecuta
un mximo
de procesos
en forma
Un
4.1.3
ESTRUCTURA
DE TRANSAC
CIONES.
Las
transacciones
planas
consisten de
una
secuencia
de
operaciones
viene
dada
segn
el
14
15
al
commit
de
su
padre,
en
abortadas
4.2 CONTROL DE CONCURRENCIA.
El control de concurrencia trata con los problemas de aislamiento y
consistencia del procesamiento de transacciones. El control de concurrencia
distribuido de una D D B M S a s e g u r a q u e l a c o n s i s t e n c i a d e l a b a s e d e
datos
se
mantiene
en
una m b i e n t e d i s t r i b u i d o m u l t i u s u a r i o . S i l a s t r a n s a c c i o n e s s
o n i n t e r n a m e n t e consistentes, la manera ms simple de lograr
e s t e o b j e t i v o e s e j e c u t a r c a d a transaccin sola, una despus de otra.
Un mtodo de control de concurrencia es correcto si es serializable, es decir existe
una secuencia equivalente en que las operaciones de cada transaccin
aparecen antes o despus de otra transaccin pero no entremezcladas. Una
ejecucin serial de transacciones es siempre correcta.
16
concurrencia
asegura
que
las
transacciones
mltiples
cuando
un
mismod a t o e s t a e n v a r i a s l o c a l i z a c i o n e s . A d e m s s e s i
g u e n d a n d o l o s m i s m o s problemas para bases de datos c
entralizadas prdida de actualizaciones,
dependencia
neutral
17
4.2.1SERIALIZACIN DE TRANSACCIONES.
Seriabilidad.
La seriabilidad consiste en asegurarse que los cambi
o s s i g u e n u n o r d e n adecuado.
Teora de la serializad Una canderilizacion ischedulel tambin llamado una historia
se define un conjunto de transacciones I= {T1,T2, TN} y especifican orden
entrelazada de la ejecucin de las operaciones de las transacciones. La
canderilizacion puede ser especificada como una orden parcial sobre T.
T1=read (x) T2=write(x) T3=read (x)
Write (x) write (y) read (y)
Commit read (z) read (z)
Comimit commit
Una candelizacion de las acciones de las tres transacciones de las tres
transacciones anteriores puede ser:
H1 = {W2 (x), R1(x), R3(x), W1(x), C1, W2 (y), R3(y), R2(z), C2, R3(z), C3 }
En bases de datos distribuidos es necesario considerar dos tipos
de historia para poder generar calendarizaciones serializables: la canderizacion
de
la
ejecucin
det r a n s a c c i o n e s g l o b a l e s s e r n s e r i a l i z a b l e s s e d e b e n s a t i s f a c e r
l a s s i g u i e n t e s condiciones:
Cada historia local debe ser serializable.
D o s o p e r a c i o n e s e n c o n f l i c t o d e b e n e s t a r e n e l m i s m o o r d e n
r e l a t i v o e n todas las historias locales donde las operaciones aparecen juntas.
Dos operaciones Oij ( x ) y Okl ( x ) (i yk no necesariamente distintos) que
accesan el mismo dato de la base de datos x se dice que estn en
conflictos si al menos una de ellas es una escritura. De esta manera, las
18
operaciones
de
lectura
no
tienenc o n f l i c t o s c o n s i g o m i s m a s . P o r t a n t o , e x i s t e n d o s t i p o
s de conflicto
read-write(o
write-read) y
write-write
pertenecer a
calendarizacin completa
define
el
orden
r a c i o n e s
u n a
e n
de
s u
ejecucin
d o m i n i o .
c a l e n d a r i z a c i n
de
todas
laso p e
F o r m a l m e n t e ,
completa
S T c definido
sobre
un
primera
condicin
establece
simplemente
que
el
dominio
de
la
calendarizacine s l a u n i n d e l o s d o m i n i o s d e l a s t r a n s a c c i o n e
s i n d i v i d u a l e s . L a s e g u n d a condicin define la relacin de ordenamiento
como un sper conjunto de la relacin de ordenamiento de transacciones
individuales. Esto mantiene el ordenamiento de las operaciones dentro
de cada transaccin. La condicin final define el orden de ejecucin entre
dos operaciones en conflicto.
19
4 . 2 . 2 AL G O R I T M O S D E C O N T R O L D E C O N C U R R E N C I A.
Aquellos algoritmos que estn basados en acceso mutuamente exclusivo a datos
compartidos (candados o bloqueos) y aquellos que intentar ordenar la
ejecucind e l a s t r a n s a c c i o n e s d e a c u e r d o a u n c o n j u n t o d e r
eglas (protocolos).
S i n embargo, estas primitivas se pueden usar en algoritmos con dos
puntos de vista diferentes:
El
punto
de
vista
pesimista
que
considera
que
muchas
d e
s u
c i c l o
d e
e n
s u
e j e c u c i n .
e t a p a
L o s algori
20
Grafo de reservas: Grafo con dos tipos de nodos, los de las transacciones y los
Correspondientes a grnulos.
Un nodo une un granulo G1 a una transaccin T10 si T9
t i e n e b l o q u e a d o e l granulo G1. Un arco une una transaccin T9 con un
granulo G1 si T9 ha solicitad o un bloqueo del granulo pero no le ha conseguido.
Una condicin necesaria para que haya un interbloqueo es que Q1 exista con ciclo
en el grafo de reservas.
Detencin: Existen diversos algoritmos para ello en la detencin de
ciclos en el grafo de esperas, entre ellos:
Algoritmo 1: Comprueba la existencia de ciclos mediante la eliminacin de nodos
terminales.
Algoritmo 2: Comprueba posibles ciclos desde la ltima transaccin bloqueada y
marcando los nodos por lo que pasa. Si pasa dos veces por el
m i s m o n o d o a detectado un ciclo.
Prevencin: L a s t c n i c a s d e i n t e r b l o q u e o u t i l i z a n e l c o n c e p t o
d e m a r c a d e tiempo de transaccin existen dos esquemas que evitan el
interbloqueo.
Recuperacin: El objetivo de esta parte de la asignacin es conocer y
entender las distintas fallas que pueden ocurrir en un BMS y cmo es
posible restaurar el sistema despus de dichas fallas este tema se llama
recuperacin de fallas.
La recuperacin de fallas esta internamente ligado Al procesami
ento de lastransacciones tiene la cualidad de ser anotmica a
pesar de que puede estar compuesto de varias operaciones de
atomicidad
se
controla
como
llegada
alc o m m i t . S i u n a t r a n s a c c i n n o s u f r i n i n g n p r o b l e m a y s
22
e p u d o e j e c u t a r completa,
entonces
el
DBMS
debe
de
4.3 CONFIABILIDAD.
Un sistema de manejo de bases de datos confiable es aquel que puede
continuar procesando las solicitudes de usuario an cuando el sistema
sobre el que opera no es confiable. En otras palabras, aun cuando los
componentes de un sistema distribuido fallen, un DBMS confiable debe
seguir ejecutando las solicitudes de usuario sin violar la consistencia de la
base de datos.
La confiabilidad de un DBMS se refiere a la atomicidad y
d u r a b i l i d a d d e l a s transacciones. El sistema sobre el cual se ejecutan los
mecanismos de control de concurrencia debe de ser confiable.
PROPIEDADES:
ATOMICIDAD: Se refiere cuando las operaciones de una transaccin se ejecutan
todas o ninguno.
DURABILIDAD: Despus de que una transaccin se ejecut
c o n x i t o , l o s cambios en la BD persisten, ms all de las fallas del sistema.
La confiabilidad se refiere a la consistencia de los resultados.
La confiabilidad se busca que los resultados de un cuestionario
concuerden con los resultados del mismo cuestionario en otra ocasin.
Si esto ocurre se puede decir que hay un alto grado de confiabilidad.
23
4 . 3 . 1 C O N C E P T O S B S I C O S D E C O N F I AB I L I D AD .
SISTEMA, ESTADO Y FALLA:
Un
sistema
un
sistema
se
puede
definir
como
la
24
qu
punto
diferentesi n v e s t i g a d o r e s , a l e x p o n e r s e a l a m i s m a s i t u a c i n , l
l e g a r a n a l a s m i s m a s conclusiones.
25
ocurra
una
cada
fallo
de
una
transaccin se debe
Las
operaciones
UNDO
deben
26
27
estable
base
de
de
datos
algunas
de
las
pginas
de
v o l t i l correspondientes a la transaccin
Independientemente
o asncrona,
se
de que
debe
la escritura
observar
un
del registro
protocolo
sea sncrona
importante
para
el
28
4 . 3 . 3 P U N T O S D E V E R I F I C AC I N ( C H E C K P O I N T S ) .
Los checkpoints buscan reducir los tiempos extra en los procesos de bsqueda en
la bitcora. Al disparar un checkpoint el sistema realiza la siguiente
secuencia de acciones:
Grabar
en
memoria
estable
todos
los
registros
de
b i t c o r a q u e e s t n e n memoria principal.
Grabar en disco los bloques modificados de los regis
t r o s i n t e r m e d i o s (buffer).
Grabar
un
registro
de
bitcora
<checkpoint>
en
memoria
estable.
Cuando ocurre un fallo del sistema es necesario consultar la
bitcora
para
v e r cules
transacciones
deben
rehacerse
cules
deshacerse.
PASOS A SEGUIR ANTE FALLOS:
1.- Para cada transaccin Ti tal que aparece en la bitcora el registro
<Ti,commit>antes del registro <checkpoint>, no es necesario ejecutar un REDO.
2.- Despus de un fallo, se examina la bitcora para determinar cul fue la ltima
transaccin Ti que comenz a ejecutarse antes del ltimo checkpoint.
*Esto se hace examinando la bitcora hacia atrs buscando el primer registro
<checkpoint> y c u l e s e l r e g i s t r o < Ti , s t a r t > m s c e r c a n o . * L u e g o ,
s e a p l i c a R E D O o U N D O sobre Ti y todas las transacciones que le suceden.
Un
punto
de
control
(checkpoints).
Es
registrado
en
la
bitcora
peridicamente e n e l m o m e n t o e n q u e e l s i s t e m a h a g r a b a d o e n l a
B D e n d i s c o l o s e f e c t o s d e todas las operaciones de escritura de las
transacciones confirmadas.
29
caso,
un
REDO
tiene
que
iniciar
desde
un
puntod e v e r i f i c a c i n y u n U N D O t i e n e q u e r e g r e s a r a l p u n t o
d e v e r i f i c a c i n m s i n m e d i a t o a n t e r i o r. L a c o l o c a c i n d e p u n t o s
d e v e r i f i c a c i n s e r e a l i z a c o n l a s siguientes acciones: Se escribe un
begin_checkpoint
en
el
registro
de
la
base
de
datos.
Se
recolectant o d o s l o s d a t o s v e r i f i c a d o s e n l a b a s e d e d
30
a t o s e s t a b l e . S e e s c r i b e u n fin_de_checkpoint en el registro de
la base de datos.
Estos puntos de verificacin nos ayudan para reducir
e l g a s t o d e t i e m p o consultando la bitcora. El punto de verificacin en un
registro que se genera en la b i t c o r a p a r a c o n c l u i r e n t o d o l o q u e
s e e n c u e n t r a a n t e s d e e s e p u n t o e s t a correcto y verificado.
Si el sistema se llega a caer se realiza la bitcora buscando del final al
inicio
el
el
protocolo
de
bloqueo
de
dos
fases
estricto
cada
requerido
bloqueos.U n a
n
sitio
todos
transaccin
y
dividida
en
que
fue
los
iniciada
en
v a r i a s subtransacciones
C a d a s u b t r a n s a c c i n Ti d e c i d e s i c o m e t e r o a b o r t a r, y e n v a a l
coordinador u n m e n s a j e . E l c o o r d i n a d o r t o m a l a d e c i s i n
f i n a l e n f u n c i n d e l a s votaciones de todos los participantes.
Cuando se presentan fallas en la red, este protocolo puede
l l e v a r a e s t a d o s de bloqueo, esto es, una subtransaccin en un sitio
que no fall no puede cometer ni abortar hasta que se repare la falla en el sitio
de origen.
PROTOCOLO DE COMPROMISO DE 2 FASES
d e e s p e r a p o r u n a respuesta.
Un participante que alcanza el tiempo mximo pasa
a l e s t a d o d e i n t e n t a r recuperarse.
Para ello enva un mensaje de ayuda help me a los
o t r o s p a r t i c i p a n t e s . Ante el pedido de ayuda, otros participantes
e n v a a b o r t T al coordinador.
S i e s t e n e s t a d o d i s p u e s t a a c o m e n t a r, n o p u e d e a y u d a r.
32
Replicacin nerge.
Esta permite la replicacin de tablas y procedimientos alm
a c e n a d o s . L a s modificaciones pueden hacerse en el Publisher o bien
en las copias mantenidas por los suscriptores. Para mantener la integridad
de los datos replicados el proceso de sincronizacin s e e n c a r g a d e
actualizar las modificaciones realizadas en las copias de
l o s suscriptores y viceversa
33