administración de bases de datos - concurrencia

20
CI-5313 Arquitectura y Administración de Bases de Datos Edna Ruckhaus 1 Concurrencia Transacción Historia Conflicto Serializable..Serial Operaciones Read Write Commit Rollback

Upload: ednaru

Post on 10-Aug-2015

38 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de DatosEdna Ruckhaus

1

Concurrencia

Transacción

HistoriaConflicto

Serializable..Serial

OperacionesReadWrite

CommitRollback

Page 2: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

2

transacciones

Transacción 1 Transacción 2

update cuenta set saldo = saldo – 100 where cid=1

Select sum(saldo) from cuenta

update cuenta set saldo = saldo + 60 where cid=2

update cuenta set saldo = saldo + 60 where cid=2

Page 3: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

3

Transacción

Unidad Lógica de procesamiento de bases de datos que incluye una o más operaciones de acceso (Read y Write)

Un programa de aplicación puede contener varias transacciones

begin

end

Page 4: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

4

Procesamiento de transacciones

Sistema mono-usuario.

Sistema multi-usuario:Muchos usuarios pueden acceder de forma concurrenteConcurrencia:

Procesamiento intercalado:Un solo CPU

Procesamiento paralelo: Varios CPU

tiempo

Page 5: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

5

Propiedades deseables de transacciones

AtomicidadTodas las actualizaciones se hacen o ninguna

ConsistenciaSatisface como un todo restricciones de integridad

Aislamiento (Isolation)Pareciera que las transacciones se ejecutan en serie

DurabilidadSi la transacción se compromete (commit), las actualizaciones no se perderán si hay fallas.

Page 6: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

6

Operaciones de una transacción

ReadSe busca el bloque en disco y se transfiere a memoria - si no está ya allí

WriteSe lleva el bloque de memoria a disco – inmediatamente o posteriormente

begin

end

Page 7: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

7

Operaciones de una transacción

CommitSeñala terminación exitosa. Las actualizaciones pueden ser comprometidas a la Base de Datos y no serán deshechas.

RollbackLa transacción se aborta, se deshacen las actualizaciones y la Base de Datos retorna a su estado anterior

begin

end

Page 8: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

8

Problemas de procesamiento intercalado

ACID no se satisface

Unrepeatable Read: T2 lee antes de que T1 añada N dando una suma incorrecta

Transacción 1 Transacción 2

sum:=0read(A)sum:=sum+A

read(X)X:=X-NWrite(X)

read(X)sum:=sum+Xread(Y)sum:=sum+Y

Read(Y)Y:=Y+NWrite(Y)

tiempo

Page 9: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

9

Problemas de procesamiento intercalado

ACID no se satisface

Transacción 1 Transacción 2

Read(X)X:=X-N

read(X)X:=X+M

write(X)read(Y)

write(X)

y:=y+Mwrite(Y)

Lost Update: Las operaciones están intercaladas de tal manera que write(X) realizada por T1 se pierde.

tiempo

Page 10: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

10

Problemas de procesamiento intercalado

ACID no se satisface

Dirty Read: T1 falla y debe hacer ROLLBACK. T2 ha leido un valor “sucio” de T1

Transacción 1 Transacción 2

Read(X)X:=X-NWrite(X)

read(X)X:=X+MWrite(X)

read(Y)

falla

tiempo

Page 11: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

11

Problemas de procesamiento intercalado

ACID no se satisface

Conflicto write-readDirty Read. Una transacción lee valor de un dato escrito por otra transacción que no ha hecho COMMIT

Conflicto read-writeUnrepeatable Read. Una transacción lee valor de un dato varias veces. Entre las lecturas, otra transacción la escribe.

Conflicto write-writeLost Update. Dos transacciones actualizan el valor de un mismo dato. Una actualziación sobreescribe la otra.

tiempo

Page 12: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

12

Procesamiento intercalado transacciones – Historia (Schedule)

El orden de ejecución de las operaciones de varias transacciones conforma una Historia de Ejecución.

Una Historia S de T1 …, TnEs un ordenamiento de las operaciones de las transacciones, en donde para cada transacción Ti se debe mantener el orden de las operaciones de la transacción.

EjemplosSa: r1(X);r2(X);w1(X);r1(Y);w2(X);w1(Y)Sb: r1(X);w1(X);r2(X);w2(X);r1(Y);a1

Transacciones

Page 13: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

13

Procesamiento intercalado transacciones – Historia (Schedule)

Conflicto

Par de operaciones en conflicto:• Operaciones de dos transacciones diferentes T1

y T2• Sobre el mismo elemento de datos• Al menos una operación es write.

r1(x), w2(x)w1(x), r2(x)w1(x), w2(x)

Transacciones

Page 14: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

14

Procesamiento intercalado transacciones – Historia (Schedule)

Serial…Serializable

Historia Serial:Si para cada transacción que participa en la Historia, todas las operaciones son ejecutadas consecutivamenteSi no se cumple es no serial.

Historia Serializable:Si es equivalente a alguna ejecución serial de las mismas transacciones

Transacciones

Page 15: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

15

Procesamiento intercalado transacciones – Historia (Schedule)

Serial

tiempo

Transacción 1 Transacción 2

read(A)A:=A+100write(A)

read(B)B:=B+100write(B)

read(A)A=A*2write(A)

read(B)B=B*2write(B)

Page 16: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

16

Procesamiento intercalado transacciones – Historia (Schedule)

Serializable

tiempo

Transacción 1 Transacción 2

read(A)A:=A+100write(A)

read(A)A=A*2write(A)

read(B)B:=B+100write(B)

read(B)B=B*2write(B)

Page 17: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

17

Procesamiento intercalado transacciones – Historia (Schedule)

No Serializable

tiempo

Transacción 1 Transacción 2

read(A)A:=A+100write(A)read(B)

read(A)A=A*2write(A)

read(B)B=B*2write(B)

B:=B+100write(B)

Lost Update: Las operaciones están intercaladas de tal manera que write(B) realizada por T2 se pierde.

Page 18: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

18

Procesamiento intercalado transacciones – Historia (Schedule)

No Serializable

tiempo

tiempo

Equivalentes?

Dos historias son Equivalentes por Conflicto los son si el orden de dos operaciones conflictivas es el mismo en ambas historias.

Una Historia es Serializable por Conflicto si es Equivalente por Conflcto a una Historia Serial.

El rol del DBMS es asegurar que las historias sean serializables

S’.

Page 19: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

19

Procesamiento intercalado transacciones – Historia (Schedule)

Chequeo Serializable por Conflicto

Grafo de precedencia de la HistoriaUn nodo por cada transacción Ti

Un arco de Ti a Tj si hay una operación conflictiva de las transacciones, y la operación de Ti precede a la de Tj

Si el grafo es acíclico, la Historia es Serializable por Conflicto

Serializable por Conflicto

Page 20: Administración de Bases de Datos - Concurrencia

CI-5313 Arquitectura y Administración de Bases de Datos

20

Procesamiento intercalado transacciones – Historia (Schedule)

Chequeo Serializable por Conflicto

Grafo de precedencia de la HistoriaUn nodo por cada transacción Ti

Un arco de Ti a Tj si hay una operación conflictiva de las transacciones, y la operación de Ti precede a la de Tj

No Serializable por Conflicto