Está en la página 1de 4

Control de concurrencia

El control de accesos concurrentes y especficamente de transacciones concurrentes es manejado por un mdulo del dbms llamado "scheduler". Es importante recordar que muchos de los datos de la base no se encuentran nada ms en disco, sino tambien en los buffers de memoria, de ah que el scheduler interacta con ellos y en su defecto solicita la lectura de los datos del disco.

Scheduler del DBMS El calendarizador crea agendas, secuencias ordenadas de las acciones tomadas por una o ms transacciones.
Una transaccin Ti est confirmada (o cancelada) en la historia H si ci H (o ai H). Ti est activa en H si est confirmada o cancelada. Por supuesto que una historia completa no tiene transacciones activas. Una historia completa H es serial si, para cada par de transacciones Ti y Tj que aparecen en H, todas las operaciones de Ti aparecen antes de todas las operaciones de Tj o viceversa. Por lo tanto, una historia serial representa una ejecucin en la cual no hay intercalacin de las operaciones de transacciones diferentes. Cada transaccin se ejecuta desde el principio hasta el fin antes de que la siguiente comience. Decimos que dos historias son equivalentes si tienen el mismo conjuntos de operaciones y las operaciones conflictivas estn en el mismo orden en ambas historias. Por ejemplo, las dos historias siguientes son equivalentes H1 = r1[x] r2[x] w1[x] c1 w2[y] c2 H2 = r2[x] r1[x] w2[y] c2w1[x] c1 Sin embargo, ninguna de ellas es equivalente a H3 = r1[x] w1[x] r2[x] c1 w2[y] c2 porque r2[x] y w1[x] estn en conflicto y r2[x] precede a w1[x] en H1 y H2 pero w1[x] precede a r2[x] en H3. Definimos una historia H como serializable si es equivalente a alguna historia serial Hs. Por ejemplo, H1 = r1[x] r2[x] w1[x] c1w2[y] c2 es equivalente a H4 = r2[x] w2[y] c2r1[x] w1[x] c1 puesto que r2[x] y w1[x] estn en el mismo orden en H1 y H4, por lo tanto H1 es serializable.

H1 = r1 [x] r2[x] w1[x] c1 w2[y] c2


T1 1R(x) 3W(x) 4C1 T2 2R(x) 5W(y) 6C2

H2 = r2[x] r1[x] w2[y] c2w1[x] c1


T1 2R(X) 5W(X) 6C1 T2 1R(W) 3W(Y) 4C2

H3 = r1[x] w1[x] r2[x] c1 w2[y] c2 T1 T2

1R(x) 2W(x) 4C1

3R(x) 5W(y) 6C2

H4 = r2[x] w2[y] c2r1[x] w1[x] c1


T1 4R(x) 5W(x) 6C1 T2 1R(y) 2W(y) 3C2

Algoritmos de control de concurrencia basados en estampas de tiempo


En un sistema distribuido, cada transaccin debe tener una estampilla de tiempo nica para usar en la decisin del orden de serializabilidad. Para la generacin de estampillas nicas, en el modelo distribuido: cada transaccin tiene una estampilla de tiempo que surge de concatenar la estampilla de tiempo local con el identificador de sitio. El problema del modelo distribuido es que un sitio podra generar estampillas de tiempo a mayor velocidad que otros sitios. En ese caso, las estampillas de tiempo generadas por el sitio ms rpido sern mayores que las generadas por otros sitios. Esto se evita si cada sitio utiliza un reloj lgico, implementado mediante un contador que se incrementa cada vez que se genera una nueva estampilla de tiempo local. Para sincronizar los relojes lgicos, se requiere que cada sitio Si avance su reloj lgico cuando arriba una nueva transaccin a ese sitio. A diferencia de los algoritmos basados en candados, los algoritmos basados en estampas de tiempo no pretenden mantener la seriabilidad por exclusin mutua. En lugar de eso, ellos seleccionan un orden de serializacion a priori y ejecutan las transacciones de acuerdo a ellas. Para establecer este ordenamiento, el administrador de transacciones le asigna a cada transaccin Ti una estampa de tiempo nica ts (Ti) cuando esta inicia. Una estampa de tiempo es un identificador simple que sirve para identificar cada transaccin de manera nica.

CARACTERSTICAS
Existen varias formas en que las estampas de tiempo se pueden asignar. Un mtodo es usar un contador global mono tnicamente creciente. Sin embargo, el mantenimiento de contadores globales es un problema en sistemas distribuidos. Por lo tanto, es preferible que cada nodo asigne de manera autnoma las estampas de tiempos basndose en un contador local. Para obtener la unicidad, cada nodo le agrega al contador su propio identificador. As, la estampa de tiempo es un par de la forma <contador local, identificador de nodo> Note que el identificador de nodo se agrega en la posicin menos significativa, de manera que, este sirve solo en el caso en que dos nodos diferentes le asignen el mismo contador local a dos transacciones diferentes. El administrador de transacciones asigna tambin una estampa de tiempo a todas las operaciones solicitadas por una transaccin. Ms aun, a cada elemento de datos x se le

asigna una estampa de tiempo de escritura, wts(x), y una estampa de tiempo de lectura, rts(x); sus valores indican la estampa de tiempo ms grande para cualquier lectura y escritura de x, respectivamente.

Regla TO: dadas dos operaciones en conflicto, Oij y Okl, perteneciendo a las transacciones Ti y Tk, respectivamente, Oij es ejecutada antes de Okl, si y solamente si, ts (Ti) < ts (Tk). En este caso Ti se dice ser una transaccin ms vieja y Tk se dice ser una transaccin ms joven.

También podría gustarte