OPTIMISTIC & PESSIMISTIC LOCK Design Patterns PILLER NADIA SARBACH MATTHIAS

Ähnliche Dokumente
Kapitel 12 Integrität der Datenbank

Synchronisation in Datenbanksystemen in a nutshell

Transaktionen und Synchronisation konkurrierender Zugriffe

Software-Engineering und Datenbanken

Synchronisation von redundanten Datenbeständen

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Datenbanken: Transaktionskonzept und Concurrency Control

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

TimeSafe Leistungserfassung

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Quellcodeverwaltung mit SubVersion

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

View. Arbeiten mit den Sichten:

Multicore Programming: Transactional Memory

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Server: Vice nach Tanenbaum, van Steen

Datenintegrität und Transaktionskonzept

Datenbanken. Ein DBS besteht aus zwei Teilen:

Subversion und Tortoise SVN Tutorial. Quelle: mit freundlicher Genehmigung von sd&m Research


Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009

Benutzerprofile verwalten. Tipps & Tricks

OPERATIONEN AUF EINER DATENBANK

GOOGLE CHROME 40. BROWSEREINSTELLUNGEN OPTIMIEREN. BMW FINANCIAL SERVICES. Google Chrome 40 Browsereinstellungen optimieren. 1

Anleitung Tierwohl-Datenbank Auditoren

Moodle aktuell halten mit Git

DV-Organisation und Anwendungsentwicklung. 4. Klausur

Kapitel 2 Transaktionsverwaltung

Datenbanken: Datenintegrität.

Benutzerhandbuch. Smartphone-Server App Stand

Transaktionen in der Praxis. Dr. Karsten Tolle

Sperrer Online-Banking - HBCI

Hibernate Das Praxisbuch für Entwickler

Einrichtung der orgamax Mobile App

Freie und Hansestadt Hamburg - Landeswahlamt -

Subversion. 17. Oktober Subversion. Norbert Perk. Warum Versionsverwaltung? Wie funktioniert. Was ist Subversion? Subversion- Server.

Beschreibung der Homepage

1 Lieferantenbewertung

F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock

Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5

17 Datenbank aufteilen

Browser Grid Funktionalitäten

Isolationslevel in SQL

Das SISTEMA-Kochbuch 3

Benutzerhandbuch Managed ShareFile

Einführung Datenbank

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: Stand:

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Gliederung Datenbanksysteme

MWF-Bore-Admin Version 1.0.7

Form Designer. Leitfaden

Replikation und Synchronisation. in mobilen Datenbanksystemen

Basis. Schritt 1 Anmelden am Projess Testserver

Readme.txt. WICHTIG!!! Bitte lesen Sie erst nachfolgende Hinweise bevor Sie die Installation starten.

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Referent: Marko Modsching. Vortrag: JPA mit Hibernate. Datum: Deutsche Software Engineering & Research GmbH

lññáåé=iáåé===pìééçêíáåñçêã~íáçå=

1 Allgemeines Ziel des Dokument Name des Dokuement Version Allgemein Status Empfänger...

TAV Übung 3. Übung 3: Verteilte Datenhaltung

Eine Kundendatenbank erstellen

Lehrlings- und Fachausbildungsstelle. EDV-Prüfungsprogramm

Themen. M. Duffner: Datenbanksysteme

Live Demo Sun Identity Manager

SQL-Injection. Seite 1 / 16

17.2 MS-Access Projekte

Nützliche SQL Statements

PostgreSQL und memcached

Internet for Guests. Interfaces Deutsch. Interfaces Seite 1/14

Sicheres Firmwareupdate für ORGA Kartenterminals im deutschen Gesundheitswesen

Lizenz Verwaltung. Adami Vista CRM

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

Datenbanksysteme I Transaktionsmanagement Felix Naumann

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Wechsel VR-NetWorld Card

Data Sharing im Cluster am Beispiel von Adabas Arno Zude, Adabas-Entwicklung Vortrag an der Universität Jena

ALF-BanCo - Chipkarte einrichten in 3 Schritten

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

QMH Kundeninformation Update EWQ QMBox EWQ Technik. EWQ QMBox: Änderungen Version 7 (Technische Aufstellung)

DOKUMENTATION PASY. Patientendaten verwalten

Tag 4 Inhaltsverzeichnis

Anleitung Modul freie Plätze VAKA heiminfo.ch

Erweiterung für Premium Auszeichnung

Fresh Minder 3-Server

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Testskripten Beispiele für System- und Akzeptanztests

Contents. Ebenen. Data Warehouse - ETL Prozess Version: July 10, Ebenen. Andreas Geyer-Schulz und Anke Thede. 2 Problemquelle Quellsysteme 4

NV. Regatta-Timer 1.1 Dokumentation

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

bnsyncservice Installation und Konfiguration bnnetserverdienst Voraussetzungen: KWP Informationssysteme GmbH Technische Dokumentation

htp VoIP-Webportal Stand: (Version 2.0) Funktionsübersicht

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.

BEDIENANLEITUNG WISO MEINBÜRO-APP

Terminland Schritt für Schritt

Anleitung. Update/Aktualisierung EBV Einzelplatz Homepage. und Mängelkatalog

Transkript:

OPTIMISTIC & PESSIMISTIC LOCK Design Patterns PILLER NADIA SARBACH MATTHIAS

Agenda 2 Persistenz und ihre Muster (3 ) Optimistic Offline Lock (6 ) (Optimistisches Sperren) Pessimistic Offline Lock (5 ) (Pessimistisches Sperren) Vergleich (1 ) Fragen (5 )

Persistenz (Informatik)* 3 Beschreibt die Fähigkeit, Daten (oder Objekte) oder logische Verbindungen über eine längere Zeit bereitzustellen Die Daten sind auch nach einem Neustart des Programmes vorhanden (gewolltes oder ungewolltes Schliessen des Programmes) und können rekonstruiert werden. Die Daten werden in Datenbanken oder im Dateisystem gespeichert. *Quelle Wikipedia [August 2014]

Persistenz Muster 4 Eager Load O/R Mapping Identity Map Coarse-Grained Lock Pessimistic Offline Lock Lazy Load Optimistic Offline Lock Auswahl von Persistenz Muster Persistenz Muster definieren Strategien zur Abbildung von Objekten und ihren Beziehungen in der Datenbank, zum Lesen und Schreiben der Daten von und in die Datenbank, sowie das Handling von konkurrierenden Zugriffen auf die Datenbank.

Konkurrenz (Grundproblematik) 5 Mehrbenutzersystem Daten sind schon erfasst Zeitgleicher Zugriff (lesen und/oder schreiben) auf einen oder mehrere Datensätze in der Datenbank möglich Es muss garantiert werden können, dass keine inkonsistenten Daten entstehen. Konkurrenz kann mittels optimistischem oder pessimistischem Sperren gehandhabt werden

Optimistic Offline Lock 6 Beispiel Intro Sitzplatzreservierungssoftware für ein Flugzeug Nadia ist eine Kundenberaterin und erhält ein telefonische Reservierung für Sitz 19 von Hans Mustermann Während Nadia die Personalien aufnimmt will auch Matthias für Frau Renata Hauswurst denselben Sitz reservieren. Nadia wird von Ihrem Vorgesetzten abgelenkt und in ein Gespräch vertieft. Matthias validiert die Benutzerdaten und speichert die Daten für Sitz Nummer 19. Der Vorgesetzte ist weg und auch Nadia möchte jetzt Sitz Nummer 19 bestätigen. Was kann, sprich muss das Programm tun, dass die Daten nicht überschrieben werden und inkonsistent werden? ID SitzID KundenID Status Preis 114 18 2598 Besetzt 350.00 115 19 NULL Frei 365.00

Optimistic Offline Lock 7 Lösungsansatz Beim optimistischen Sperren geht man davon aus, dass alle Benutzer den Datensatz gleichzeitig lesen dürfen. (Read Rechte) Die Datentabelle wird um mindestens ein Feld erweitert (Revisionsnummer / Letzte Änderung). Schlüssel Feld01 Feld02 Version Letzte Änderung Verantwortlicher Falls nötig wird ein zweites Feld mit dem Verantwortlichen der Änderung hinzugefügt. (Nachfrage Möglichkeit) Beim Speichern der Daten (Update) wird überprüft (mittels einer where-klausel), ob die Version des Datensatzes noch stimmt. (Inkonsistenz Überprüfung) Falls Ja Daten speichern, Version inkrementieren / Zeitstempel aktualisieren Falls Nein Änderungen verwerfen, Fehlermeldung ausgeben, Rollback durchführen

Optimistic Offline Lock 8 Beispiel Lösung ID SitzID KundenID Status Preis Version Verantwortlicher 115 19 NULL Frei 365.00 1 BOOT ID SitzID KundenID Status Preis Version Verantwortlicher 115 19 6543 Besetzt 365.00 2 Matthias

Optimistic Offline Lock 9 Varianten Falls unterschiedliche Felder in einem Datensatz editiert wurden, wäre es unter Umständen möglich ein programmatisches Merge durchzuführen. ID SitzID KundenID Status Preis Version Verantwortlicher 115 19 NULL Frei 365.00 1 BOOT ID SitzID KundenID Status Preis Version Verantwortlicher 115 19 6543 Besetzt 365.00 2 Matthias ID SitzID KundenID Status Preis Version Verantwortlicher 115 19 NULL Frei 450.00 2 Hans ID SitzID KundenID Status Preis Version Verantwortlicher 115 19 6543 Besetzt 450.00 2 Hans

Optimistic Offline Lock 10 Zusammenfassung Optimistisches Sperren kann drohende Inkonsistenzen von Mehrbenutzersystemen beim Zeitpunkt des Updates in die Datenbank erkennen und verhindern. Vorteile: Lesezugriff ist zu jederzeit gestattet Lesende Clients sind uneingeschränkt Keine künstliche Freigabe für einen Datensatz der nur gelesen wird Nachteile: Nach abgewiesenem Update, muss das Formular (Daten) erneut eingegeben oder die Daten zusammengeführt werden Es besteht trotzdem keine Garantie, dass es beim zweiten Mal klappt Daten können veraltet sein Der Optimistic Offline Lock ist nur geeignet für Situationen in denen es nur gelegentlich zu Konfliktsituationen kommen kann. Für häufige Konfliktsituationen ist der Pessimistic Offline Lock zu wählen.

Pessimistic Offline Lock 11 Beispiel Intro Der Patient Peter Egger wird im Krankenhaus auf verschiedenen Stationen untersucht. Fortlaufend treffen neue Untersuchungsergebnisse ein und werden in der elektronischen Krankenakte erfasst. Da viele Untersuchungen durchgeführt wurden und die Resultate zeitversetzt bekannt gegeben werden, kommt es zu zeitgleichen Zugriffen auf die Krankenakte. An den Untersuchung von Peter Egger sind mehrere Abteilungen und Ärzte beteiligt, weshalb ein konkurrierender Zugriff häufig vorkommt. Aufgrund der häufigen, konkurrierenden Updates der Krankenakte würde man mit einer optimistischen Sperre laufend Daten verwerfen, da in der Zwischenzeit schon ein Update durchgeführt wurde. Was kann man also tun um keine inkonsistenten Daten zu erhalten?

Pessimistic Offline Lock 12 Lösungsansatz Der Datensatz wird gesperrt, sobald er mit dem Ziel der Bearbeitung gelesen wird. ID Feld01 Feld02 Sperre Benutzer Ja Der Datensatz wird erst wieder freigegeben, wenn die Transaktion (das Ändern des Datensatz) abgeschlossen wird. ID Feld01 Feld02 Sperre Benutzer Nein NULL Um ein Blockieren des Datensatzes zu verhindern, wird oft ein Zeitstempel hinzugefügt. Nach dessen Ablauf wird der Datensatz wieder freigegeben. (Fehlermeldung an Nutzer) Es sollte unbedingt ein zentraler Lockmanager (Singelton), der exklusiven Zugriff auf die Sperren hat, erstellt werden.

Pessimistic Offline Lock 13 Beispiel Lösung ID Name Vorname Resultat Gesperrt Verantwortlicher 115 Egger Peter Nein NULL ID Name Vorname Resultat Gesperrt Verantwortlicher 115 Egger Peter Ja Dr. F. Meyer

Pessimistic Offline Lock 14 Varianten Exklusive Schreibsperre: Sperrt den Datensatz um diesen zu bearbeiten. Lässt jedoch zu, dass weiter Anwender den Datensatz lesen können. Exklusive Lesesperre: Sperrt den Datensatz beim Lesen für jeden weiteren Lese- oder Schreibzugriff. Lese/Schreibsperre: Kombination aus exklusiver Schreib- und Lesesperre. Datensätze können von mehreren Benutzern zum Lesen gesperrt werden, falls keine Schreibsperre existiert oder die einzige ihm selbst gehört. Eine Schreibsperre kann nur von einem Benutzer gesetzt werden, wenn keine Sperren existieren oder die einzige Lesesperre dem Benutzer selbst gehört

Pessimistic Offline Lock 15 Zusammenfassung Pessimistisches Sperren verhindert drohende Inkonsistenzen von Mehrbenutzersystemen, in dem es den Datensatz beim Lesen für die anderen Zugriffe sperrt. Vorteile: Nur einer kann Änderungen durchführen und er weiss, dass seine Daten gespeichert werden können. Es muss nicht gemerget werden. Der Anwender welche die Daten sperrt, kann sich sicher sein, dass er auf der aktuellsten Version arbeitet. Nachteile: Bei exklusiver Schreibsperre weiss man nicht, ob die Daten für das folgende Lesen aktuell sind. Exklusive Lesesperren verhindern jeden gleichzeitigen Zugriff auf den selben Datensatz. Lese-/Schreibsperren sind meist kompliziert zum Umsetzen. Der Pessimistic Offline Lock wird verwendet, wenn es zu vielen Konfliktsituationen kommt.

Vergleich 16 Anwendung Optimistic Offline Lock Wenn selten Konflikte vorkommen Pessimistic Offline Lock Wenn häufig Konflikte vorkommen Umgang mit Konflikten Konflikt wird behandelt Konflikt wird verhindert Implementation gering Je nach Variante sehr komplex Strategie Prüfen vor Update Sperren beim Lesen

Fragen? 17