Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Terico
Control de Concurrencia
Sobre una BD se podran ejecutar muchos
procesos concurrentemente sobre exactamente
los
mismos datos.
Estos procesos podran estar interfiriendo unos
con otros. De qu forma?
Control de Concurrencia
Estudio de un modelo formal y de los principios
bsicos de las que debe implementar el
manejador para garantizar la consistencia de la
base en la situacin de modificaciones
concurrentes.
Transaccin
Seriabilidad y Recuperabilidad
Protocolos de Control de Concurrencia
Control de Concurrencia
Transaccin
A cada uno de los procesos concurrentes que se ejecuta
sobre datos compartidos, se le llama Transaccin si
cumple las propiedades ACID:
Atomicidad (Atomicity): desde el punto de vista del
resultado, o se ejecuta totalmente, o no se ejecuta.
Consistencia (Consistency preservation): siempre
lleva a la base de un estado consistente a otro estado
consistente.
Aislamiento (Isolation): una transaccin no debe
interferir con otra.
Durabilidad (Durability): los cambios de una
transaccin confirmada deben ser permanentes en la base.
Transaccin
base.
writei(X),wi(X): la transaccin i escribe el tem X de
la base.
commiti,ci: la transaccin i confirma que todas sus
modificaciones deben ser permanentes en la base.
aborti,ai: la transaccin i indica que ninguna de sus
modificaciones deben ser permanentes en la base.
El Manejador de Transacciones
(Scheduler o Transaction Manager)
Se encarga de la administracin de las transacciones
en la Base de Datos.
Para eso recibe las instrucciones que los programas
pretenden ejecutar y se toma la libertad de
reordenarlas, sin cambiar nunca el orden relativo de
los Read y Write.
Puede llegar a agregar instrucciones (nunca R/W) por
su cuenta.
Puede llegar a demorar la ejecucin de las
instrucciones.
Hace lo que necesite para implementar ACID hasta
donde pueda.
T1:
cascada)
Problema:
casualidad.
Teorema de Seriabilidad
Un historia H es serializable si su grafo de
seriabilidad es acclico.
Ejemplo de cmo usarlo:
T1:
Uso de la Seriabilidad
El manejador debera garantizar la construccin de
historias serializables, y que sean recuperables y que
no tengan abortos en cascada.
Las formas bsica de hacer esto, es demorar las
operaciones en conflicto con otras anteriores hasta
que estas terminen.
Hay dos formas bsicas de hacer esto:
Locking
Timestamps
Definiciones
Ejemplo.
T1:
Definiciones
Ejemplo.
T1:
Definiciones
Una historia es Estricta si ninguna transaccin
lee o escribe hasta que todas las transacciones
que escribieron ese tem fueron confirmadas.
(Los
commits tienen que estar antes de los reads
writes siguientes).
Ejemplo.
nivel
Tercer nivel
Cuarto nivel
Quinto nivel
Lock Binario
Se consideran dos operaciones nuevas en una transaccin
Ti: locki(X) ( o li(X)) y unlocki(X) (o ui(X)).
Cuando se ejecuta li(X), el DBMS hace que cualquier lj(X)
(de otra transaccin Tj) no termine hasta que Ti ejecute
ui(X).
El comportamiento es similar a los semforos utilizados en
los sistemas operativos.
Ej:
T1:
Lock Binario
Lock Binario.
Read/Write Lock
Read/Write Lock.
Hay tres operaciones a considerar:
read_locki(X) (o rli(X)), write_locki(X) (o
wli(X)), unlocki(X) (o ui(X)).
Ventaja: Se permite que varias operaciones
hagan un rl (pero no un wl) simultneamente
sobre el mismo tem.
Desventaja: Un poco ms complicado de
implementar.
Protocolos de Locking
Las reglas de uso no alcanzan para garantizar
seriabilidad.
Ej:
T1:
Protocolos de Locking
La idea de un protocolo de locking es definir un
conjunto de reglas de uso de Locks que sean
ms
fuertes que las anteriores y garanticen la
seriabilidad.
T1:
Ventaja:
No susceptible a Deadlock
Desventaja: Exige la predeclaracin de todos los
tems que se van a leer o grabar (read-set, write-set),
lo que no siempre es posible.
T1:
rl1(Y),r1(Y),wl1(X),u1(Y),u1(X),...
T2: rl2(X),r2(X),wl2(Y),u2(X),u2(Y),...
H1: rl1(Y),r1(Y),rl2(X),r2(X),wl1(X),wl2(Y)
TS(T)
Asumiendo
tiene.
Wait-die:
Wound-wait:
TimeOut.
FIFO
Manejo
de prioridades.
Si
Si
Que es un tem ?
Porque
Concurrencia en la Insercin y
Eliminacin
Eliminacin:
Locking: se lockea en forma exclusiva
Timestamp: hay que garantizar que ninguna transaccin
posterior a la que elimina el registro haya ledo o escrito el
elemento.
Insercin:
Locking: Se crea un lock, se inserta un registro y se libera
en el momento adecuado segn el protocolo.