Está en la página 1de 10

Salvador Jess Romero Castellano

Mtodos de Control de Concurrencia en Bases de Datos


Salvador Jess Romero Castellano
14 de Enero de 2005
Resumen
El objetivo de los mtodos de control de concurrencia es garantizar la no inferencia o la
propiedad de aislamiento de transacciones que se ejecutan de manera concurrente. Los distintos
objetivos atacan el problema garantizando que las transacciones se ejecuten en un plan que sea
serializable es decir que el resultado sea equivalente a el resultante de ejecutar un plan en serie.
Este documento analiza los tres grandes grupos de mtodos ! protocolos "de bloqueo de
marcas de tiempo ! optimistas# $aciendo especial nfasis en las ventajas e inconvenientes de usar
unos u otros.
Contenidos
%. &rotocolos basados en tcnicas de bloqueo
%. 'loqueos binarios
%. (sando bloqueos binarios
). 'loqueos de lectura*escritura
+. &rotocolo de bloqueo en dos fases
%. 'loqueo en dos fases b,sico conservador estricto ! riguroso
%. Conservador o est,tico
). Estricto
+. Riguroso
). &roblemas del bloqueo en dos fases- .nterbloqueo ! espera indefinida
%. &rotocolos de prevenci/n de interbloqueo
). 0etecci/n del interbloqueo
+. Espera indefinida
). &rotocolos de ordenaci/n por marcas de tiempos
%. 1rdenaci/n b,sica
). Regla de escritura de 2$omas
+. 1rdenamiento estricto o conservador
+. &rotocolos de control multiversi/n
%. &rotocolo de ordenaci/n por marcas de tiempo multiversi/n
). &rotocolo de bloqueo en dos fases multiversi/n
3. &rotocolos de control optimistas
%
4todos de control de concurrencia
Protocolos basados en tcnicas de bloqueo
Cabe destacar antes de comenzar el estudio de los protocolos basados en bloqueos que son
los m,s utilizados por los S5'0 comerciales. Los dem,s tienen una alcance m,s te/rico que
pr,ctico.
(n bloqueo es una variable asociada a un elemento de datos de la base de datos usada para
restringir las operaciones que se pueden aplicar sobre l. E6isten varios tipos de bloqueo- binarios
"de propiedades limitadas# compartidos e6clusivos "usados en la pr,ctica# ! bloqueos de
certificaci/n.
Las operaciones sobre bloqueos se deben implementar como secciones cr7ticas es decir de
forma indivisible8 el S5'0 no deber, alternar sus instrucciones con otras.
Bloqueos binarios
Se caracterizan por tener dos valores posibles8 bloqueado ! desbloqueado. Cada elemento de
la base de datos tiene un bloqueo distinto. El bloqueo se9ala si una transacci/n est, operando sobre
el elemento o est, libre para que se pueda operar con l. 0e esta manera se impide que dos o m,s
transacciones estn operando sobre un mismo elemento al mismo tiempo.
La implementaci/n de un bloqueo binario es simple8 basta con un vector de la siguiente
forma- :referencia al dato bloqueado booleano referencia a la transacci/n que lo bloquea; donde
el booleano es en s7 el indicador del bloqueo.
Usando bloqueos binarios
Cuando se usan bloqueos una transacci/n $a de usarlos mediante las funciones
bloquear<elemento ! desbloquear<elemento cumpliendo las siguientes reglas-
%. (na transacci/n 2 debe emitir la operaci/n bloquear<elemento"6# antes de que se realice
cualquier operaci/n leer<elemento"=# i escribir<elemento"6#
%. (na transacci/n 2 debe emitir la operaci/n desbloquear<elemento"=# despus de $aber
completado todas las operaciones leer<elemento"=# ! escribir<elemento"=# en 2.
%. (na transacci/n 2 no emitir, una operaci/n bloquear<elemento"=# si !a posee el bloqueo del
elemento =.
%. (na transacci/n 2 no emitir, una operaci/n desbloquear<elemento"=# a menos que !a posea
el bloqueo del elemento =.
Bloqueos de lectura/escritura
Son una ampliaci/n de los bloqueos binarios. 2enemos que el bloqueo puede tener tres
posibles posiciones- libre bloqueado para lectura ! bloqueado para escritura. 0e esta forma m,s de
una transacci/n puede tener un mismo elemento de datos bloqueado para lectura pero s/lo una para
escritura. Si una transacci/n quiere escribir en ese elemento $abr, de esperar a que el bloqueo
quede libre "cualquiera que sea el tipo de bloqueo# ! a continuaci/n bloquearlo para escritura. Si
quiere leer s/lo tendr, que esperar si el elemento est, bloqueado para escritura. Se dice por tanto
que el bloqueo de lectura es compartido ! el de escritura e6clusivo. 2endremos por tanto tres
operaciones8 bloquear<escritura"=# bloquear<lectura"=# ! desbloquear"=#.
)
Salvador Jess Romero Castellano
El sistema debe $acer cumplir las siguientes reglas para usar los bloqueos de
lectura*escritura-
%. (na transacci/n 2 debe emitir la operaci/n bloquear<lectura"6# o bloquear<escritura"=# antes
de que se realice cualquier operaci/n leer<elemento"=# de 2.
%. (na transacci/n 2 debe emitir la operaci/n bloquear<escritura"=# antes de que realice
cualquier operaci/n escribir<elemento"=# de 2.
%. (na transacci/n 2 debe emitir la operaci/n desbloquear"=# una vez que se $a!an completado
todas las operaciones leer<elemento"=# ! escribir<elemento"=# de 2.
%. (na transacci/n 2 no emitir, una operaci/n bloquear<lectura"=# si !a posee un bloqueo de
lectura "compartido# o de escritura "e6clusivo# para el elemento =.
%. (na transacci/n 2 no emitir, una operaci/n bloquear<escritura"=# si !a posee un bloqueo de
lectura "compartido# o de escritura "e6clusivo# para el elemento =.
%. (na transacci/n 2 no emitir, una operaci/n desbloquear"=# a menos que !a posea algn tipo
de bloqueo sobre el elemento =.
Las reglas 3 ! > se pueden relajar admitiendo que una transacci/n que tenga bloqueado un
elemento en modo lectura lo pueda bloquear en modo escritura si no e6iste ninguna otra
transacci/n que lo tenga bloqueado. ?s7 mismo si lo tiene bloqueado en escritura puede relajar el
bloqueo a lectura.
Protocolo de bloqueo en dos fases
En l todas las operaciones de bloqueo preceden a la primera operaci/n de desbloqueo de la
transacci/n. El proceso se puede as7 dividir en dos fases8 la fase de bloqueo ! de desbloqueo. Si se
permite la conversi/n entre bloqueos las conversiones de bloqueos de lectura a bloqueos de
escritura son en la primera fase ! las de bloqueos de escritura a lectura en la segunda.
Su principal ventaja es que garantiza la seriabilidad lo que no se consigue usando
simplemente bloqueos.
Como inconvenientes podemos citar varios-
'loquea los elementos que podr7an ser desbloqueados tras su uso ocupados $asta la segunda fase
impidiendo que otras transacciones que los necesiten los utilicen. Esto $ace que el rendimiento
de este protocolo se degrade conforme aumenta el grado de concurrencia8
@o permite todos los planes serializables posibles.
La implementaci/n de este este bloqueo depende del programador que puede no realizar su tarea
convenientemente.
Bloqueo en dos fases bsico, conservador, estricto y riguroso
Son variaciones del bloqueo en dos fases. Se detallan a continuaci/n-
Conservador o esttico
Requiere que una transacci/n bloquee todos los elementos a los que tendr, acceso antes de
+
4todos de control de concurrencia
comenzar a ejecutarse. (na vez bloqueados no $abr, conversi/n de bloqueos de lectura a escritura.
Si no es posible bloquearlos todos la transacci/n no bloquear, nada ! esperar, a poder bloquear
todos los elementos necesarios en su totalidad.
Su principal ventaja es que no s/lo garantiza la seriabilidad sino que evita el interbloqueo
de transacciones.
Como principal inconveniente se9alaremos que en la pr,ctica es mu! dif7cil saber qu
elementos ser,n necesarios durante la transacci/n antes de que esta comience si no imposible.
2ambin es interesante destacar que al tener que esperar a poder bloquear todos los
elementos que la transacci/n necesite este protocolo reduce la concurrencia.
Estricto
La transacci/n no libera ninguno de sus bloqueos de escritura antes de confirmarse o
abortar.
Este tipo de bloqueo garantiza planes estrictos en cuanto a recuperabilidad "recuperable es
un plan que una vez confirmada la transacci/n no ser, necesaria des$acerla#. Sin embargo puede
sufrir interbloqueos.
Riguroso
Es una versi/n m,s restrictiva del estricto. Similar al anterior pero adem,s tampoco libera
los bloqueos de lectura. Es m,s f,cil de implementar.
Problemas del bloqueo en dos fases: interbloqueo y espera indefinida
El interbloqueo se produce cuando cada transacci/n 2 en un conjunto de dos o m,s
transacciones est, esperando a algn elemento que est, bloqueado por alguna otra transacci/n 2A de
dic$o conjunto. En este estado cada transacci/n est, parada en espera a que otra transacci/n libere
el recurso. Las condiciones para que se produzca en interbloqueo son las siguientes-
%. E6clusi/n mutua. Cada elemento est, bloqueado por una transacci/n o est, libre.
). Retenci/n ! espera- (na transacci/n que !a tiene elementos bloqueados puede solicitar un
elemento adicional ! esperar que se le asigne sin devolver previamente ninguno de los
anteriores.
+. @o apropiaci/n- S/lo puede liberar un elemento la transacci/n que lo tiene asignado8 no se lo
puede quitar otra transacci/n que tenga ma!or prioridad ni el S5'0.
3. Espera circular- E6iste una cadena circular compuesta por dos transacciones o m,s ! otros
tantos elementos intercalados de manera que cada proceso est, esperando que se le asigne un
elemento el cual a su vez est, asignado al siguiente proceso de la cadena.
El tratamiento del interbloqueo est, orientado bien a prevenirlo bien a detectarlo ! evitarlo.
Protocolos de prevencin de interbloqueo
Estos protocolos no se emplean en la pr,ctica !a sea debido a suposiciones poco realistas o
una posible sobrecarga del sistema. Esto no s/lo es v,lido para las bases de datos8 en los sistemas
operativos el coste de la detecci/n en los casos de los sistemas para &C o similares ! el de la
3
Salvador Jess Romero Castellano
prevenci/n en casi todos $ace que no se $aga nada para tratarlo circunstancia con la que tenemos
que enfrentarnos a menudo ! que solemos resolver matando un programa.
El primer protocolo el bloqueo en dos fases conservador !a lo $emos visto ! comentado.
(n segundo protocolo que tambin limita la concurrencia consiste en ordenar todos los elementos
de la base de datos ! asegurarse de que una transacci/n que necesite varios elementos los bloquear,
segn ese orden. Su inconveniente es que obliga al programador a conocer la manera en que est,n
ordenados estos elementos.
1tros mtodos para evitar el interbloqueo se basan en una 'marca de tiempo de
transaccin' que es un identificador nico asignado a la transacci/n que a!uda a ordenar las
transacciones temporalmente segn el orden en que $an sido iniciadas. 4ediante estas marcas se
decide si una transacci/n que se encuentre en posible situaci/n de interbloqueo debe esperar
abortar o $acer que otra transacci/n aborte.
Ba! dos enfoques conocidos como esperar-morir ! herir-esperar. Suponiendo que una
transacci/n ? intenta bloquear una elemento = bloqueado por una transacci/n ' en el primer
enfoque si ? es m,s antigua que ' espera a que ' libere =. En caso contrario ? aborta ! vuelve a
reiniciar con la misma marca de tiempo. En el enfoque $erirCesperar si ? es m,s antigua que '
entonces ' aborta. En caso contrario ? espera a que ' acabe. Estos algoritmos tienen la virtud de
evitar la espera indefinida "comentada m,s adelante#.
El algoritmo de no-espera consiste en que si una transacci/n no consigue un bloqueo aborta
! se reinicia tras un lapso de tiempo aunque no fuera a $aber interbloqueo. Las desventajas de este
mtodo son evidentes. &ara mejorarlo se propone la espera cautelosa que reduce el nmero de
abortos innecesarios. Supongamos como antes que ? trata de bloquear un elemento = !a bloqueado
por '. Si ' no est, en espera de otro bloqueo ? espera a que ' libere =. En caso contrario se aborta
?. Este mtodo trata de evitar el interbloqueo atacando a su condici/n de espera circular.
1tros algoritmos dise9ados para evitar bloqueos en espera de recursos compartidos
mltiples como el algoritmo del banquero pueden ser aplicados tambin en este conte6to.
Deteccin del interbloqueo
Este enfoque es m,s pr,ctico ! m,s interesante si esperamos que $a!a poca interferencia
entre transacciones. La forma m,s sencilla ! conocida es mediante el grafo de espera de
transacciones*elementos. Se tiene que e6iste interbloqueo si el grafo de espera tiene un ciclo. El
sistema revisa peri/dicamente este grafo ! si encuentra un ciclo elige una transacci/n v7ctima para
abortarla ! as7 romper el anterior. El inconveniente de este sistema es decidir una pol7tica adecuada
para la frecuencia de la comprobaci/n ! la selecci/n de v7ctimas.
1tra soluci/n m,s sencilla es el uso de tiempos limitados que presupone que una transacci/n que
lleve en espera un tiempo superior a un tiempo predefinido se encuentra bloqueada ! se procede a
su eliminaci/n.
Espera indefinida
Este problema tiene lugar cuando una transacci/n no puede continuar durante un periodo
indeterminado mientras otras transacciones del sistema continan con normalidad. La soluci/n a
>
4todos de control de concurrencia
este problema pasa por tener una planificaci/n justa que impida que algunas de las transacciones
Amueran de inanici/nA.
Protocolos de ordenacin por por marcas de tiempo
(na marca de tiempo es un identificador nico que el S5'0 crea para identificar una
transacci/n basada en la ma!or7a de los casos en el momento en que se inician. Se pueden por
tanto ordenar las transacciones cronol/gicamente segn su marca de tiempo.
Este mtodo se basa en marcas de tiempo para ordenar las transacciones. El plan resultante
de esta ordenaci/n ser, equivalente a un plan en serie con las transacciones ordenadas segn sus
propias marcas de tiempo.
Esto es una diferencia fundamental conforme a los mtodos anteriores en los que los planes
serializables lo eran a algn plan serial que se pueda construir con los protocolos de bloqueo "Dque
no eran todos los planes seriales posiblesE#. En este caso sabemos a qu plan serial se
corresponder7a el plan serializable resultante de aplicar ordenaci/n por marcas de tiempo.
Este sistema asocia a cada elemento un par de variables8 marca_lectura ! marca_escritura
en las que se escribir, el valor de la marca de tiempo de una transacci/n que las consulte. 0e esta
manera la marca_lectura(X) ser, igual a la marca de tiempo de la ltima transacci/n que $a!a le7do
con 6ito el elemento =. Fdem para marca_lectura(X).
El mtodo consiste en dejar al sistema organizar las operaciones libremente "no las ordena
de forma activa por tanto# pero al ejecutar una operaci/n verifica que esta no contradice el orden
de seriabilidad. &odr7amos decir por tanto que es un mtodo optimista.
E6isten tres enfoques del mtodo segn qu $acer cuando al tratar de $acer una operaci/n se
presenta el conflicto-
Ordenacin bsica
Consiste en lo siguiente-
Cuando la transaccin T emite una operacin escribir_elemento(X):
-- Si alguna de las marcas de X son mayores que la marca de tiempo de T, entonces
la operacin no se llea a cabo y se aborta T.
-- Si no, se procede con normalidad, y se asigna el alor de la marca de tiempo de T
a marca_lectura(X)
Si alguna de las marcas son ma!ores que la marca de 2 significa que una transacci/n
posterior a 2 escribi/ o le!/ de = ! por tanto que 2 usara el elemento = estar7a en contra del orden
por antigGedad de transacci/n8 la transacci/n m,s vieja deber7a escribir en = antes de que la joven
usara este elemento.
Cuando la transaccin T emite una operacin leer_elemento(X)
Si la marca_escritura(X) es mayor que la marca de tiempo de T, se rec!a"a la
operacin y se aborta y reierte T.
Si no, se procede con normalidad, y se asigna a marca_lectura(X) el mayor alor
entre la marca de tiempo de T y la marca_lectura(X) actual.
H
Salvador Jess Romero Castellano
En esta ocasi/n dado que lo que queremos $acer leer no afecta a otras transiciones s/lo
debe preocuparnos que una transacci/n m,s joven $a!a escrito en la variable en cuesti/n.
?l abortar una transacci/n se vuelve a introducir en el sistema con una nueva marca de
tiempo para probar suerte como una transacci/n nueva.
Ientajas- ?l ser un mtodo semioptimista da mejor rendimiento cuando la interacci/n entre
las transacciones es reducida. Con este mtodo no se puede producir interbloqueo.
.nconvenientes-
(na transacci/n puede verse sometida a un reinicio c7clico.
Si e6iste muc$a interacci/n puede ser mu! costoso al tener que des$acer muc$as veces.
Se puede producir una restauraci/n en cascada- ?l des$acer una transacci/n 2% cualquier
transacci/n 2) que $a!a utilizado un valor escrito por 2% $abr, de des$acerse tambin ! as7
sucesivamente.
Regla de escritura de !o"as
Es una variante del protocolo anterior dise9ada para rec$azar menos operaciones de
escritura. Si se va a escribir un elemento que $a!a sido escrito por una transacci/n m,s joven
simplemente se ignora la escritura obteniendo el mismo efecto como sta escribiese su valor justo
despus de que la transacci/n que est, intentando escribir $ubiera escrito su valor lo que ser7a
v,lido. El caso del intento de operaci/n lectura"=# queda por tanto as7-
-- Si marca_lectura(X) es mayor que la marca de T, abortar, y des!acer T.
-- Si marca_lectura(X) es mayor que la marca de T, ignorar esta operacin y
continuar.
-- #n otros casos se e$ecuta la operacin y se asigna a marca_lectura(X) el alor de
la marca de lectura de T.
Ordena"iento estricto o conservador
1tra variante del primero. El ordenamiento b,sico por marcas de tiempo trata de ejecutar
una operaci/n tan pronto como se recibe sta. ?s7 la ejecuci/n de las operaciones es progresiva
pero como $emos como $emos comentado antes se pueden producir muc$os reinicios de
transacciones.
En esta variaci/n una transici/n que emita una operaci/n de lectura o escritura tal que la
marca de la transacci/n es menor que marca<escritura"=# sufre un retraso de su operaci/n $asta que
la transacci/n que escribi/ el valor de = $a!a abortado o se $a!a terminado.
Su principal ventaja por tanto es que evita el reinicio ! la restauraci/n en cascada.
.nconveniente- ?l frenar una transacci/n se da9a la concurrencia en general ! el rendimiento
de dic$a transacci/n en particular a e6pensas de lo que $aga la transacci/n a la que se espera.
J
4todos de control de concurrencia
Protocolos de control multiversin
Se basan en conservan los valores antiguos de un elemento cuando es actualizado. El
mantener varios valores del mismo elemento es lo que da al nombre de estos protocolos.
2ener varias versiones de un elemento facilita que algunas operaciones de lectura que no se
llevar7an a cabo por protocolos como los anteriores pueden ser aceptadas si se $acen sobre una
versi/n m,s antigua del mismo. 0e esta manera al escribir en un elemento se escribe en una ueva
versi/n conservando las antiguas o algunas de ellas para otras transacciones m,s antiguas que
pudieran necesitarlas m,s tarde evitando as7 que reinicien.
Protocolo de ordenacin por "arcas de tie"po "ultiversin
&ara cada elemento = el sistema guarda varias versiones =
%
=
)
...=
K
teniendo para cada
versi/n una marca_lectura(X
i
) ! una marca_escritura(X
i
) similares a las marcas utilizadas por
otros mtodos !a comentados pero referidos a la versi/n concreta X
i
.
&ara asegurar la seriabilidad usamos dos reglas-
%. Si la transacci/n 2 emite una operaci/n escribir<elemento"=# tomamos versi/n de =
llammosla =
i
con ma!or marca_lectura(X). Si este valor es ma!or que la marca de
tiempo de 2 abortamos ! des$acemos la transacci/n. Caso contrario se crea una nueva
versi/n de = ! se asigna la etiqueta de tiempo de 2 a sus valores marca_lectura(X) !
marca_escritura(X).
). Si la transacci/n 2 emite una operaci/n leer<elemento"=# se busca la versi/n =
i
que tenga
su marca_escritura(X
i
) ma!or posible pero sin sobrepasar la marca de tiempo de 2. Se
utiliza este elemento ! despus asignamos a marca_lectura(X
i
) el ma!or valor entre la
marca de tiempo de 2 ! el valor que tuviera antes.
La principal ventaja de este mtodo salta a la vista8 no $a! operaci/n de lectura rec$azada
que provoque un reinicio de la transacci/n.
El principal inconveniente tambin cae por su propio peso. El mantener varias versiones de
un elemento puede llegar a resultar costoso. En el caso peor la base de datos puede degenerar en
una base de datos temporal que sigue la pista a todos los cambios ! los momentos en los que
ocurrieron. Cabe destacar tambin que en este mtodo abortar una transacci/n puede provocar una
restauraci/n en cascada !a comentada antes.
Protocolo de bloqueo en dos fases "ultiversin
Es una ampliaci/n del bloqueo en dos fases antes comentado. En esta versi/n se tienen tres
tipos de bloqueo8 los dos anteriores de escritura ! lectura ! uno m,s llamado de certificaci/n. ?l
contrario que en el bloqueo en dos fases simple un bloqueo de escritura no impide que otras
transacciones bloqueen otros elementos para lectura. Lo que se $ace en caso de que transacci/n
bloquee un elemento para lectura para poder conseguir esto es crear una nueva versi/n de =
llammosla =A en la que la transacci/n bloqueante podr, realizar cuantos cambios quiera mientras
las dem,s transacciones seguir,n viendo el valor anterior de = para lectura. Es importante se9alar
que si bien con este mtodo se pueden realizar una lectura ! una escritura simult,neas sigue sin
poder realizarse dos escrituras al mismo tiempo.
Cuando una transacci/n que $a!a bloqueado un elemento para escritura est lista para
confirmarse debe obtener el bloqueo de certificaci/n de =. ?$ora s7 el bloqueo de certificaci/n es
L
Salvador Jess Romero Castellano
e6clusivo respecto a los otros dos. (na vez lo obtiene el valor de = pasa a ser el de =A con lo que a
partir de ese momento es visible para todas las transacciones.
La novedad de este mtodo con respecto al bloqueo en dos fases !a visto es que permite la
lectura a mismo tiempo que la escritura. Sin embargo una transacci/n deber, esperar a confirmarse
$asta tener los bloqueos de certificaci/n de todos los elementos que $a modificado.
Este esquema evita el aborto en cascada !a que siempre se leen versiones confirmadas de =.
Sin embargo si permitimos que un bloqueo se convierta en un bloqueo de escritura tal como !a
vimos anteriormente para la versi/n simple de este bloqueo se puede producir un interbloqueo.
Protocolos de control optimistas
Los protocolos anteriores que podemos clasificar como pesimistas comprueban que la
operaci/n que la transacci/n se dispone a $acer es v,lida antes de modificar el elemento en la base
de datos. Los protocolos de control optimistas por el contrario presuponen que todas las
operaciones se van a efectuar en orden correcto ! por tanto no controlan la validez de las
operaciones realizadas $asta que la transacci/n termina en la llamada fase de validaci/n o
certificaci/n.
La forma de implementar estos protocolos para este conte6to "transacciones que $an de ser
confirmadas# es $acer que las transacciones lleven a cabo sus modificaciones en un espacio
particular al que se $an copiado previamente los datos que la transacci/n va!a a necesitar. Si al
final del proceso los datos resultantes son v,lidos se pasan del espacio particular a la base de datos.
Con esto tenemos que los protocolos de bloqueo optimistas tienen tres fases bien
diferenciadas-
Fase de lectura/ejecucin- En ella las transacciones leen cuantos elementos necesiten de la base
de datos pero realizan las modificaciones en un espacio particular como !a $emos se9alado.
Fase de certificacin/validacin- Se verifica que los resultados de la transacci/n no violan la
seriabilidad. 0e ser as7 "el resultado no es correcto# la transacci/n reinicia "como las
modificaciones eran en un espacio aparte de variables no $ace falta des$acer. Simplemente se
descartan estas variables#.
Fase de escritura/confirmacin- Llegados a este punto aplicamos las actualizaciones de la
transacci/n a la base de datos.
Este protocolo necesita de marcas de tiempo de transacciones guardar las $oras de inicio !
terminaci/n de al menos una de las tres fases ! adem,s requiere que el sistema mantenga control
sobre los conjuntos de lectura ! escritura de cada transacci/n.
En la fase de validaci/n de la transacci/n 2 el protocolo comprueba que que 2 no interfiere
en ninguna transacci/n confirmada ni en cualquier otra que actualmente est en su fase de
validaci/n. La fase de validaci/n consiste por tanto en para toda otra transacci/n 2A comprobar que
se cumplan alguna de estas condiciones-
%. La transacci/n 2A completa su fase de escritura antes de que 2 inicie su fase de lectura.
). 2 inicia su fase de lectura despus de que 2A complete su fase de escritura ! el conjunto de
lectura de 2 no tiene elementos en comn con el conjunto de escritura de 2A.
+. @i el conjunto de lectura ni el conjunto de escritura de 2 tienen elementos en comn con el
conjunto de lectura de 2A ! 2A completa su fase de lectura antes de que 2 complete su fase de
lectura.
M
4todos de control de concurrencia
El control optimista es m,s r,pido ! permite ma!or grado de paralelismo al menos con
cargas de trabajo bajas o medias. &ara cargas altas aumenta la probabilidad de que se produzca un
conflicto ! las cancelaciones e intentos sucesivos causan un incremento apreciable del trabajo.
%N

También podría gustarte