Mehrbenutzerzugriff auf GIS-Daten

Slides:



Advertisements
Ähnliche Präsentationen
Mehrbenutzersynchronisation
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
10.2 Wechselseitiger Ausschluss in Hardware
Synchronisation paralleler Transaktionen AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (5/13) Schedule: T* = {T 1,..., T.
Granularity of Locks and Degrees of Consistency in a Shared Data Base
Transaktionsverwaltung
Transaktionsverwaltung
B-Bäume.
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
On a Buzzword: Hierachical Structure David Parnas.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Baumstrukturen Richard Göbel.
Suche in Texten: Suffix-Bäume
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Union-Find-Strukturen
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Transaktionen in verteilten Datenbanken
Prof. Dr. T. Kudraß1 Concurrency Control. Prof. Dr. T. Kudraß2 Korrektheitskriterium: Serialisierbarkeit Zwei Schedules sind konfliktäquivalent wenn gilt:
3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:
Übung zum R-Baum, Gegeben ist die dargestellte Menge von Rechtecken, die in der Reihenfolge 1, 7, 9, 13, 3, 5, 11, 6, 8, 10, 4, 14, 12, 2 eingegeben.
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
Minimum Spanning Tree: MST
Kapitel 13: Mehrbenutzersynchronisation
Recovery AIFB SS Recovery 5.1 Fehler im Datenbankbetrieb(1/10) (1)Transaktionsfehler (TF) (2)Systemfehler (SF) (3)Speicherfehler (SpF) Fehlerfallen.
Synchronisation paralleler Transaktionen AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/18) Sperrmodi und Sperrobjekte Sperrprotokoll.
Transaktion 1Transaktion 2... Transaktion n Synchronisation durch Scheduler Datenbasis-Verwalter lokaler Schedule 1lokaler Schedule n konfliktserialisierbarer.
4.4.2 Sperrverfahren (9/18) Regeln für das Setzen von Sperren
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Implementierung von S2PL (1) Scheduler als Verwalter von Sperren auf Datenelementen sowie Warteschlangen für Sperren (Sperren-Verwalter). Transaktion 1Transaktion.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 21: Concurrency Control.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Entwicklung verteilter eingebetteter Systeme - Einführung
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Mehrbenutzersynchronisation
Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #7 Mehrbenutzersynchronisation (Teil 1)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #12 Mehrbenutzersynchronisation.
Synchronisation paralleler Transaktionen AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (11/13) Vermutung: Eine Schedule S.
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Transaktion Huang Zhenhao FU Shuai.
Thread Synchronisation in JAVA
Vorlesung #12 Mehrbenutzersynchronisation
Unterprogramme in JAVA
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
Übung: Transaktionale Systeme (Zusammenfassung der Vorlesungsinhalte)
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Mehrbenutzersynchronisation
Prüfung auf Serialisierbarkeit (3)
Synchronisation paralleler Transaktionen  AIFB SS Sperrverfahren Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Synchronisation paralleler Transaktionen  AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (2/13) Im folgenden wird ein vereinfachtes.
Serialisierbarkeitsprinzip Isolationsprinzip scheint zunächst streng serielle Abwicklung der Transaktionen zu fordern: r 1 (x) r 1 (y)... w 1 (z) c 1 r.
1 6.4 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung.
Synchronisation paralleler Transaktionen  AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/3) Typen von Synchronisationsverfahren.
6.3 Verteilte Transaktionen
Geoinformation II 6. Sem. Vorlesung April 2000 Geometrische Algorithmen - ein einführendes, größeres Beispiel für ein Semester-begleitendes Programmier.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
© 2008 TravelTainment The Amadeus Leisure Group Thread-Programmierung im Qt-Framework Von: Simon Lubberich Erstbetreuer:
Graphen.
6.3 Verteilte Transaktionen
WS 2001/2002 Mehrbenutzerzugriff auf GIS-Daten
 Präsentation transkript:

Mehrbenutzerzugriff auf GIS-Daten Geoinformation Vorlesung 5 Mehrbenutzerzugriff auf GIS-Daten

Szenario Geodatenserver mehrere Benutzer Transaktionen T 1 Szenario Geodatenserver mehrere Benutzer Transaktionen T Anfragen, Methoden, Programme Items „A“ Variable, Tupel, Relation, Objekt Modi Lesen (an und für sich unproblematisch) Schreiben Erforderlich: Synchronisation Protokolle

Problemfall Write A Programm (P): Read A; A:=A+1; Write A; 2 Problemfall Programm (P): Read A; A:=A+1; Write A; 5 + 1 + 1 =/= 6 ! A in Datenbank 5 5 5 5 6 6 T1: Read A A:=A+1 Write A T2: Read A A:=A+1 Write A A im Arbeitsspeicher T1 5 5 6 6 6 6 A im Arbeitsspeicher T2 5 5 6 6

Lösung: Sperren (Lock und Unlock) 3 Lösung: Sperren (Lock und Unlock) Sperren verschafft dem Prozess P exklusiven Zugriff auf das Item A. P : Read A; Write A; A:=A+1; Lock A; Unlock A

Problem: Gegenseitige Blockade („Deadlock“) 4 Problem: Gegenseitige Blockade („Deadlock“) T 1: Lock A; Lock B; Unlock A; Unlock B; T 2: Lock B; Lock A; Unlock B; Unlock A;

Vermeidung von Deadlocks: 5 Vermeidung von Deadlocks: Protokolle des Laufzeitsystems: alle Ressourcen werden auf einmal angefordert und gleichzeitig gewährt (falls nicht alle Ressourcen verfügbar, kommt der Prozess in die Warteschlange) die Ressourcen unterliegen einer linearen Ordnung, und bei der Bedarfsanmeldung wird diese Reihenfolge eingehalten

Aber wie steuert man Nebenläufigkeit? 6 Aber wie steuert man Nebenläufigkeit? wird erst T1 ganz und dann T2 ganz ausgeführt, heisst diese Reihenfolge seriell Problem: welche Überlappung ist zulässig? eine Reihenfolge heisst serialisierbar, wenn sie einer seriellen Reihenfolge äquivalent ist wie erkennt man Serialisierbarkeit? T 1: A:=A-10; Read B; Write B; Read A; Write A; B:=B+10; T 2: B:=B-20; Read C; Write C; C:=C+20;

Beispiele T 1 T 2 T 1 T 2 T 1 T 2 A:=A-10 Read B A:=A-10 A:=A-10 7 Beispiele T 1 T 2 T 1 T 2 T 1 T 2 Read A Read A Lock A A:=A-10 Read B A:=A-10 Write A A:=A-10 Lock B Read B B:=B-20 Unlock A B:=B+10 Write A B:=B-20 Write B Write B Lock B Read B Read B Unlock B B:=B-20 Read C B:=B+10 B:=B+10 Lock C Write B Read C C:=C+20 Unlock B C:=C+20 Write B C:=C+20 Write C Write C Unlock C seriell serialisierbar nicht serialisierbar A 3x

Prüfung auf Serialisierbarkeit (a posteriori) 8 Prüfung auf Serialisierbarkeit (a posteriori) Algorithmus: Input: Eine überlappte Ausführung von Transformationen T1,...,Tk Output: Prüfung der Serialisierbarkeit. Methode: Konstruiere einen Graphen mit den Knoten a1, a2, ... an wobei jedes ai eine der beiden folgenden Formen hat: Tj: Lock Am oder Tj: Unlock Am Wenn ein Lock Am auf einen Unlock Am folgt, werden diese beiden Knoten miteinander verbunden. Die Reihenfolge ist serialisierbar, wenn der entstandene Graph azyklisch ist; eine serielle Reihenfolge kann durch eine geeignete Durchlaufstrategie ermittelt werden.

Serialisierbar Lock A . Unlock A Lock A Lock B . Unlock B . Lock B 9 Serialisierbar Lock A . Unlock A Lock A Lock B . Unlock B . Lock B Unlock B T1 T2

Serialisierbarkeit a priori durch Zwei-Phasen-Protokoll 10 Serialisierbarkeit a priori durch Zwei-Phasen-Protokoll Zwei-Phasen-Protokoll in jeder Transaktion T gehen alle Sperrungen (Locks) den Freigaben (Unlocks) voraus Vorteil: leicht zu überprüfen Nachteil: ev. großräumige Sperrung T2: Lock A; Lock B; Unlock A; Unlock B;

11 Beispiel T2: Lock A; Lock B; Unlock A; Unlock B;

Verfeinerungen differenziere zwischen Read und Write-Locks 12 Verfeinerungen differenziere zwischen Read und Write-Locks berücksichtige hierarchische Strukturen Aggregierte Objekte B-Bäume

Baum-Protokoll 1 (knoten-orientiert) 13 Baum-Protokoll 1 (knoten-orientiert) Lock eines Knotens setzt Verfügung (Lock) über den Vaterknoten voraus Ausnahme: 1. Lock einer Transaktion Kein Knoten wird durch die gleiche Transaktion mehrmals gesperrt A B C G F E D

Baum-Protokoll 1 (knoten-orientiert) 14 Baum-Protokoll 1 (knoten-orientiert) (1) (2) (4) (3) (9) (8) (5) (10) (6) (7) (12) (11) (14) (13) (16) (15) (18) (17) Lock D Lock B Unlock B Lock A Lock C Lock E Unlock D Lock F Unlock A Unlock C Unlock E Lock G Unlock F Unlock G A B C G F E D A A B B B B C C D D E E E E F F G G T1 T2 T3 A 36x

Warn-Protokoll (Teilbaum-orientiert) 15 Warn-Protokoll (Teilbaum-orientiert) Anwendungsbeispiel: B-Baum 3 Modi: Warn, Lock und Unlock Warnungen sind untereinander nicht exklusiv mehrere Prozesse können den gleichen Knoten warnen ein gewarnter Knoten kann von einem anderen nicht mit Lock gesperrt werden Die Transaktion T beginnt mit der Warnung der Wurzel des Baumes Sperrung eines Knotens setzt Warnung des Vaterknotens voraus ein Knoten kann nur entsperrt oder entwarnt werden, nachdem alle Sperrungen / Warnungen auf Kinder entfernt wurden 2-Phasen-Protokoll: alle Warnungen und Sperrungen gehen allen Freigaben voraus

16 A B C G F E D

Warn-Protokoll (Beispiel) 17 Warn-Protokoll (Beispiel) (1) Warn A (2) Warn A (3) Warn A A B C G F E D (4) Warn B (5) Lock C (6) Lock D C C (7) Unlock C (8) Unlock D (9) Unlock A (10) Unlock B D D (11) Lock B (12) Warn C (13) Lock F (14) Unlock A (15) Unlock B (16) Unlock F (17) Unlock C (18) Unlock A T1 T2 T3 A 36x

Warn-Protokoll (Beispiel) 17 Warn-Protokoll (Beispiel) (1) Warn A (2) Warn A (3) Warn A A B C G F E D (4) Warn B (5) Lock C (6) Lock D C C (7) Unlock C (8) Unlock D (9) Unlock A (10) Unlock B D D (11) Lock B (12) Warn C (13) Lock F (14) Unlock A (15) Unlock B (16) Unlock F (17) Unlock C (18) Unlock A T1 T2 T3 A 36x

Warn-Protokoll (Beispiel) 17 Warn-Protokoll (Beispiel) (1) Warn A (2) Warn A (3) Warn A A B C G F E D (4) Warn B (5) Lock C (6) Lock D B C C (7) Unlock C (8) Unlock D (9) Unlock A (10) Unlock B D D F (11) Lock B (12) Warn C (13) Lock F (14) Unlock A (15) Unlock B (16) Unlock F (17) Unlock C (18) Unlock A T1 T2 T3 A 36x

Warn-Protokoll (Beispiel) 17 Warn-Protokoll (Beispiel) (1) Warn A (2) Warn A (3) Warn A A B C G F E D (4) Warn B (5) Lock C (6) Lock D B B C C (7) Unlock C (8) Unlock D (9) Unlock A (10) Unlock B D D F F (11) Lock B (12) Warn C (13) Lock F (14) Unlock A (15) Unlock B (16) Unlock F (17) Unlock C (18) Unlock A T1 T2 T3 A 36x

Warn-Protokoll (Beispiel) 17 Warn-Protokoll (Beispiel) (1) Warn A (2) Warn A (3) Warn A A B C G F E D (4) Warn B (5) Lock C (6) Lock D B B C C (7) Unlock C (8) Unlock D (9) Unlock A (10) Unlock B D D F F (11) Lock B (12) Warn C (13) Lock F (14) Unlock A (15) Unlock B (16) Unlock F (17) Unlock C (18) Unlock A T1 T2 T3 A 36x

Warn-Protokoll (Beispiel) 17 Warn-Protokoll (Beispiel) (1) Warn A (2) Warn A (3) Warn A A B C G F E D (4) Warn B (5) Lock C (6) Lock D B B C C (7) Unlock C (8) Unlock D (9) Unlock A (10) Unlock B D D F F (11) Lock B (12) Warn C (13) Lock F (14) Unlock A (15) Unlock B (16) Unlock F (17) Unlock C (18) Unlock A T1 T2 T3 A 36x