referat interpretation charakterisierung

REFERAT-Menü

Deutsch
Geographie
Geschichte
Chemie
Biographien
Elektronik
Englisch
Epochen
Französisch
Biologie
Informatik
Italienisch
Kunst
Latein
Literatur
Mathematik
Musik
Philosophie
Physik
Politik
Psychologie
Recht
Sonstige
Spanisch
Sport
Technik
Wirtschaft
Wirtschaftskunde-BWL

TDO-Referat - Lösungswege zu den Concurrency-Problemen

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

1 Concurrency-Probleme 1

1.1 Locking zur Lösung der Probleme 1

1.2 Das lost update Problem 2

1.3 Das uncommited dependency Problem 3

1.4 Das inconsistent analysis Problem 4

1.5 Problem Deadlock 5

1.6 Techniken zur Vermeidung/Lösung von Deadlocks 5

1.6.1 Two Phase Locking 6

1.6.2 Zeitmarkenverfahren (Timestamp technique) 6

1.6.3 Transaktion Retry 6

2 Zwei-Phasen-Commit (Two Phase Commit) 7

3 Fragen 8

  1. Concurrency-Probleme

    1. Locking zur Lösung der Probleme

Die Grundidee des Locking ist es, alle Objekte, welche von einer Transaktion benötigt werden, mit einer entsprechenden Marke (diese wird als Lock bzw. Sperre bezeichnet) zu versehen, welche anderen Transaktionen anzeigt, daß dieses Objekt derzeit nicht verfügbar ist.

2 Arten von Locks werden unterschieden:

X-Lock (exclusive Locks): Wird durch eine Transaktion A ein Datensatz verändert, so wird dieser für alle anderen Transaktionen gesperrt, bis die Transaktion den Datensatz wieder freigibt. Diese Sperre verhindert, daß andere Transaktionen den Datensatz lesen oder verändern.

  xl182g7156illv 17182gxy56ilv9x

S-Lock: (share Locks): Wird durch eine Transaktion ein Datensatz abgefragt, so wird dieser Datensatz für X-Locks gesperrt d.h. daß andere Transaktionen den Datensatz nicht ändern dürfen, Lesezugriffe sind jedoch ohne weiteres erlaubt.

  xl182g7156illv 17182gxy56ilv9x

  xl182g7156illv 17182gxy56ilv9x

Aus diesen zwei Aussagen ergibt sich folgende Wertetabelle

gefordertes Lock
gesetztes Lock von Transaktion A
von Transaktion B
X
S
kein
X
wait B
wait B
OK
S
wait B
OK
OK

Bsp.: Angenommen Transaktion A hat einen Datensatz R für ein Änderung (X-Lock) gesperrt, so wird eine Anfrage von Transaktion B für einen Lock auf denselben Datensatz (egal welchen Typs) diese in einen Wartezustand führen.

Bsp.: Hat aber die Transaktion A ein S-Lock auf den Datensatz R, so muß man bei einer Anfrage eines Locks von Transaktion B auf R zwei Fälle unterscheiden:

  1. bei Anfrage von Transaktion B für ein X-Lock auf R gelangt diese in einen Wartezustand bis der Datensatz wieder freigegeben wird.

  xl182g7156illv 17182gxy56ilv9x

  1. eine Anfrage von Transaktion B für ein S-Lock auf R wird erlaubt.


    1. Das lost update Problem

Das Problem besteht darin, daß „ältere“ Änderungen durch zeitlich verschobene Zugriffe verloren gehen können:

Transaktion A
Zeit
Transaktion B
-
|
-
lese Satz R
t1
-
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
-
t2
lese Satz R
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
ändere Satz R
t3
-
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
-
t4
ändere Satz R
-
¯
-

Lösung mittels Locking:

Transaktion A
Zeit
Transaktion B
-
|
-
lese Satz R zum Ändern
(meldet X-Lock auf Satz R an)
t1
|
-
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
-
t2
|
lese Satz R zum Ändern
(möchte X-Lock auf Satz R)
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
ändere Satz R
t3
wartet auf Freigabe von Satz R durch A
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
Synchpoint; Ende Transaktion
(gibt Satz R wieder frei)
t4
|
wartet auf Freigabe von Satz R durch A
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
-
t5
|
lese Satz R zum Ändern
(meldet X-Lock auf Satz R an)
-
¯
-

Mit dem Einlesen des Satzes R zum Zeitpunkt t1 wird dieser mit einem X-Lock gesperrt. Dadurch werden alle weiteren Zugriffe (z.B. Leseanforderung zum Zeitpunkt t2) gesperrt. Erst nach Freigabe der Sperren (Zeitpunkt t4) kann der Datensatz weiter verwendet werden.


Verwendet man allerdings an Stelle der
X-Locks in obigem Beispiel S-Locks so treten neue Probleme auf:

Transaktion A
Zeit
Transaktion B
-
|
-
lese Satz R
(meldet S-Lock auf Satz R an)
t1
|
-
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
-
t2
|
lese Satz R
(meldet S-Lock auf Satz R an)
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
ändere Satz R
(möchte X-Lock auf Satz R)
t3
|
-
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
wartet auf Freigabe von Satz R durch B
t4
|
ändere Satz R
(möchte X-Lock auf Satz R)
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
wartet auf Freigabe von Satz R durch B
t5
wartet auf Freigabe von Satz R durch A
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
wartet auf Freigabe von Satz R durch B
¯
wartet auf Freigabe von Satz R durch A

Da Transaktion A beim Lesen seine Änderungsabsicht noch nicht bekanntgibt, wird Transaktion B zum Zeitpunkt t2 der Lesezugriff nicht verwehrt. Die in der Folge angeforderten X-Locks versetzen beide Transaktionen in den Wartezustand, da das von der gegnerischen Transaktion gesetzte S-Lock kein X-Lock zuläßt. Diese Situation bezeichnet man als Deadlock. Die Lösung dieses neuen Problems wird später erklärt.

    1. Das uncommited dependency Problem

Dieses Problem basiert auf der Verwendung von unbestätigten, veränderten Daten und diese müssen Änderungen zurückgenommen werden.

Transaktion A
Zeit
Transaktion B
-
|
-
-
t1
ändere Satz R
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
lese Satz R
t2
-
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
-
t3
Rollback
-
¯
-


Lösung mittels Locking:

Transaktion A
Zeit
Transaktion B
-
|
-
-
t1
|
ändere Satz R
(meldet X-Lock auf Satz an)
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
lese Satz R
(möchte S-Lock auf Satz R)
t2
|
-
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
wartet auf Freigabe von Satz R durch B
t3
|
Rollback; Synchpoint; Ende Transaktion
(gibt Satz R wieder frei)
  xl182g7156illv 17182gxy56ilv9x
|
  xl182g7156illv 17182gxy56ilv9x
lese Satz R
(meldet S-Lock auf Satz R an)