Transactional Memory. Robert Brunel Technische Universität München
|
|
- Uwe Bach
- vor 7 Jahren
- Abrufe
Transkript
1 Transactional Memory Robert Brunel Technische Universität München
2 Transactional Memory: Grundbegriffe Memory-Transaction: Eine Folge von Zugriffen auf den Arbeitsspeicher, die atomar und isoliert ausgeführt wird Atomarität: Alles oder nichts -Prinzip Bei commit: Alle Schreibzugriffe der T. werden gültig Bei abort: Alle Schreibzugriffe werden verworfen; T. hat keine Auswirkungen Isolation: Vor commit kann keine andere T. die Änderungen einer Transaktion sehen Serialisierbarkeit: Von außen betrachtet committen die Transaktionen in einer seriellen Reihenfolge
3 Programmieren mit TM void deposit(account, amount) { lock(account); int t = bank.get(account); t = t + amount; bank.put(account, t); unlock(account); Bisher: Explizite Verwaltung von Sperren (Locks) void deposit(account, amount) { atomic { int t = bank.get(account); t = t + amount; bank.put(account, t); Mit neuem Sprachkonstrukt atomic: Deklarative Synchronisation System setzt Synchronisation um
4 Beispiel: Thread-sichere Datenstruktur (1) HashMap bei Java 1.4: nicht Thread-sicher! public Object get(object key) { int idx = hash(key); HashEntry e = buckets[idx]; while (e!= null) { if (equals(key, e.key)) return e.value; e = e.next: return null;
5 Beispiel: Thread-sichere Datenstruktur (2) Synchronisierte HashMap: Explizites, grobgranulares Sperren durch Programmierer public Object get(object key) { synchronized (mutex) { return map.get(key); Vorteile: Thread-sicher, einfach zu programmieren Nachteile: Stark begrenzte Nebenläufigkeit u. Skalierbarkeit
6 Beispiel: Thread-sichere Datenstruktur (3) Concurrent HashMap (Java 5): Feingranularer Parallelismus, u.a. nebenläufige Lesezugriffe möglich Nachteile: komplex, fehlerträchtig
7 Beispiel: Thread-sichere Datenstruktur (4) Transaktionale HashMap: public Object get(object key) { atomic { return map.get(key); TM-System kontrolliert Nebenläufigkeit, garantiert Atomarität Vorteile: Thread-sicher, einfach zu programmieren Performanz? Skalierbarkeit?
8 Beispiel: Thread-sichere Datenstruktur (5) Vergleichende Messungen zu Performanz und Skalierbarkeit:
9 Vorteile von TM (1) Einfach zu verwendendes Synchronisierungskonstrukt atomic Performanz, Skalierbarkeit vergleichbar mit feingranularem Sperren TM erzeugt keinen neuen Parallelismus, hilft aber zu nutzen was schon da ist. Ziel: 90% des Vorteils bei 10% der Arbeit!
10 Vorteile von TM (2) Komposition von Softwaremodulen: Einfach, sicher, skalierbar void transfer(a, B, amount) synchronized(a) { synchronized(b) { withdraw(a, amount); deposit(b, amount); void transfer(a, B, amount) atomic { withdraw(a, amount); deposit(b, amount); void transfer(b, A, amount) synchronized(b) { synchronized(a) { withdraw(b, amount); deposit(a, amount); void transfer(b, A, amount) atomic { withdraw(b, amount); deposit(a, amount);
11 Vorteile von TM (3) Automatische Fehlerbehandlung! void transfer(a, B, amount) { synchronized(bank) { try { withdraw(a, amount); deposit(b, amount); catch (Exception e1) { /* */ catch (Exception e2) { /* */ void transfer(a, B, amount) { atomic { withdraw(a, amount); deposit(b, amount);
12 atomic{ vs. lock()+unlock() atomic{ High-Level-Deklaration: Programmierer spezifiziert Anforderung atomar + isoliert ; System setzt diese bestmöglich um Keine Angabe zu Umsetzung bzw. Blocking-Verhalten lock()+unlock() blockierendes Low-Level-Primitiv Stellt für sich alleine nicht Atomarität oder Isolation sicher! Kann verwendet werden um atomic zu implementieren Wird auch zu anderen Zwecken neben Atomarität genutzt Man kann also nicht einfach alle lock/unlock- Vorkommnisse durch atomic ersetzen!
13
14 Implementierung von TM TM-System muss Atomarität und Isolation sicherstellen, ohne Nebenläufigkeit zu opfern Optionen: Software TM Hardware-beschleunigte STM-Systeme Hardware-basierte TM-Systeme Hybride TM-Systeme Zwei grundlegende Anforderungen/Mechanismen: Datenversionierung Konflikterkennung u. -auflösung
15 Datenversionierung (1) Verwaltung von uncommitted (neuen) und committed (alten) Daten für jede Transaktion Eager Versioning Speicherstellen beim Schreiben direkt aktualisieren Informationen zum Rückgängig-Machen in Undo-Log merken Locks verhindern, dass anderer Code die uncommitteten Daten sieht Lesezugriffe und Commit schnell, Aborts langsam alternativ: Lazy Versioning (Schreibpuffer-basiert)
16 Datenversionierung (2): Eager Versioning
17 Konflikterkennung u. -auflösung (1) Erkennung von Read-Write- und Write-Write-Konflikten TM-System muss dazu Speicherzugriffe verfolgen: Read-Set: Adressen, die innerhalb der T. gelesen werden Write-Set: Adressen, die innerhalb T. geschrieben werden Granularität der Konflikterkennung: Objekt-, Element-/Feld-, Cache-Line-Granularität; oder aber gemischt, je nach Typ
18 Konflikterkennung u. -auflösung (2) Pessimistische Erkennung Auf Konflikte während Lese-/Schreibzugriffen prüfen Bei Konflikten entscheiden ob T. anzuhalten oder abzubrechen ist alternativ: Optimistische Erkennung Erst bei Commit-Versuch auf Konflikte prüfen (Read-/Write-Set validieren über Versionsnummern)
19 Software Transactional Memory (STM) atomic { a.x = t1; a.y = t2; if (a.z == 0) { a.x = 0; a.z = t3; tmtxnbegin(); tmwr(&a.x, t1); tmwr(&a.y, t2); if (tmrd(&a.z) == 0) { tmwr(&a.x, 0); tmwr(&a.z, t3); tmtxncommit(); Software-Barrieren ermöglichen TM- Buchführung Versionierung, Verfolgung der Read-/Write-Sets, Commit, Verwendung von Sperren, Zeitstempeln, Kopien der Daten
20 Beispiel für eine STM-Umsetzung (1) Dynamisch: Alle Speicherzugriffe im Programm werden dynamisch behandelt (vs. statisch) Lock-basiert: Implementierung benutzt blockierende Sperren (vs. non-blocking) Eager Versioning kann verwendet werden
21 Beispiel für eine STM-Umsetzung (2) U. a. benötigte Datenstrukturen: Transaction-Descriptor (pro Thread) Enthält Read-Set, Write-Set, Undo-Log, ggf. Schreibpuffer Verwendet für Konflikterkennung, Commit, Abort, Transaction-Record (32-bit, je TM-Datum) dient der Verfolgung des transaktionalen Daten-Zustandes Status: Durch Schreiber gesperrt oder Nicht gesperrt Wenn gesperrt: Zeiger auf Besitzer-Transaktion Wenn nicht gesperrt: Zeitstempel des letzten Commits
22 Beispiel für eine STM-Umsetzung (3) Zuordnung von Transaction Records zu Daten: class Foo { int x; int y; a.) In Objekt eingebettet: vtbl TxR x y b.) Hashing der Felder oder Arrayelemente in eine globale Tabelle: f(obj.hash, field.index) vtbl Hash x y TxR 1 TxR 2 TxR n
23 Beispiel für eine STM-Umsetzung (4) Zur Versionsverfolgung benutzte Zeitstempel: Globaler Zeitstempel Wird erhöht, wenn eine schreibende T. committet Lokaler Zeitstempel für jede Transaktion Wird beim Validieren der T. jeweils auf globalen Zeitstempel gesetzt
24 Beispiel für eine STM-Umsetzung (5) Lesezugriff: optimistisch 1. Datum direkt von Speicherstelle lesen (eager) 2. Datum validieren: Prüfen ob entsperrt und Version <= Lok. Zeitstempel Wenn nicht, alle Daten im Read-Set auf Konsistenz überprüfen 3. In Read-Set einfügen 4. Wert zurückgeben Schreibzugriff: pessimistisch 1. Datum validieren. Prüfen ob entsperrt und Version <= Lok. Zeitstempel 2. Sperre akquirieren 3. In Write-Set einfügen 4. Eintrag im Undo-Log erstellen 5. Wert direkt an Speicherstelle schreiben (eager)
25 Beispiel für eine STM-Umsetzung (6) Validierung des Read-Set: 1. Glob. Zeitstempel ermitteln 2. Für jedes Datum im Read-Set: Wenn von anderer T. gesperrt oder Version > Lokaler Zs: Abort! 3. Lokalen Zs auf glob. Zs setzen Commit: 1. Glob. Zs atomar um 2 erhöhen 2. Wenn alter glob. Zs > lok. Zs: Read-Set validieren 3. Für jedes Datum im Write-Set: Lock freigeben Version um 2 erhöhen
26 Beispiel-STM-Umsetzung (7) - Illustration Transaktion 1: atomic { t = foo.x; bar.x = t; t = foo.y; bar.y = t; commit Kopiert das Objekt foo in das Objekt bar Liest <foo, 3> Schreibt <bar, 5> Undo <bar.x, 0> Undo <bar.y, 0> foo 3 hdr x = 9 y = 7 T1 75 hdr x = 90 y = 70 bar T2 wartet Transaktion 2: atomic { t1 = bar.x; t2 = bar.y; abort Sollte bar entweder als (0,0) oder als (9,7) lesen Liest <bar, 5> Liest <bar, 7>
27 Herausforderungen bei STM Klonen der Funktionen Overhead durch Software-Barrieren Single-Thread-STM-Performance 1,8- bis 5,6-fach langsamer gegenüber sequentieller Ausführung Optimierungspotential bei Softwarebarrieren: Verhinderung von redundantem Logging/Locking Standard- und STM-Spezifische Compiler-Optimierungen Interaktion mit nicht-transaktionalem Code Weak Atomicity vs. Strong Atomicity Starke Atomizität bei STM schwer zu gewährleisten
28 Weitere Herausforderungen bei TM Robustes Contention Management Schlechte Performanz bei langlaufenden Transaktionen Verschachtelung von Transaktionen Nicht-umkehrbare Operationen in atomic-blöcken I/O-Geräte, I/O-Register, Performanz (Compileroptimierung, Hardwarebeschleunigung) Werkzeuge für Debugging und Performanzanalyse
29 Literatur Transactional Memory: Concepts, Implementations & Opportunities. Christos Kozyrakis, Stanford University (2008) Unlocking Concurrency. A. Adl-Tabatabai, Intel; C. Kozyrakis, Stanford University; B. Saha, Intel. ACM Queue (2006) TCC-Prototypen: Software Transactional Memory - Why is it only a research toy? Calin Cascaval et. al., ACM Queue (2008)
Multicore Programming: Transactional Memory
Software (STM) 07 Mai 2009 Software (STM) 1 Das Problem 2 Probleme mit 3 Definitionen Datenspeicherung Konflikterkennung Granularität Optimierungsmöglichkeiten Software (STM) 4 Software (STM) Beispielimplementation
MehrSeminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HS 2007. Transactional Memory. Vortrag von Erdin Sinanović
Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HS 2007 Transactional Memory Vortrag von Erdin Sinanović Übersicht Was ist Transactional Memory (TM)? Wie programmiert man mit TM? Software
MehrVerteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase
Verteilte Systeme Nebenläufigkeit Prof. Dr. Oliver Haase 1 Arten der Nebenläufigkeit 1-Prozessor(kern)-System quasiparallele Ausführung erhöht Interaktivität durch Umschalten zwischen Threads kann Parallelitätsgrad
MehrProseminar Nichtsequentielle Programmiersprachen
Proseminar Nichtsequentielle Programmiersprachen WS 2011/2012 Software Transactional Memory Gregor Busse 04.01.2012 1 Inhaltsverzeichnis Software Transactional Memory: Einleitung..Seite 3 Software Transactional
MehrJava I Vorlesung Nebenläufigkeit
Java I Vorlesung 10 Nebenläufigkeit 28.6.2004 Threads Synchronisation Deadlocks Thread-Kommunikation Innere Klassen Anonyme Klassen Nebenläufigkeit http://java.sun.com/docs/books/tutorial/essential/threads/
Mehr6.3 Verteilte Transaktionen
6.3 Verteilte Transaktionen Situation: Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.b. verteilte Datenbank, verteiltes Dateisystem,...) d.h. in Fragmente aufgeteilt, für die
Mehrlibrtipc - Bibliothek für echtzeitfähige Interprozesskommunikation
librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation Josef Raschen Diplomarbeit: Hardwareunabhängige Interprozesskommunikation für Echtzeitanwendungen Lehrstuhl für Betriebssysteme RWTH Aachen
MehrSven Osterwald Concurrent Objects. Proseminar Parallele Programmierung in Java
Sven Osterwald 12.05.2010 Concurrent Objects Proseminar Parallele Programmierung in Java Überblick 1. Einführung 2. Beispiel FIFO-Queue mit und ohne Lock 3. Korrektheit bei sequentiellen Objekten 4. Korrektheit
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrUniversität Karlsruhe (TH) Software Transactional Memory
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Software Transactional Memory Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Software Transactional Memory Agenda 1. Motivation
MehrDie Sicht eines Sysadmins auf DB systeme
Die Sicht eines Sysadmins auf DB systeme Robert Meyer 21. Oktober 2016 Robert Meyer Die Sicht eines Sysadmins auf DB systeme 21. Oktober 2016 1 / 20 Inhaltsverzeichnis 1 Einleitung 2 IO unter Linux typische
MehrSynchronisation in Datenbanksystemen in a nutshell
Synchronisation in Datenbanksystemen in a nutshell 1. Modell für nebenläufige Transaktionen und Korrektheitskriterium Transaktionsmodell: Folgen von Lese und Schreiboperationen abgeschlossen durch c=commit.
MehrP.A. Bernstein, V. Hadzilacos, N. Goodman
TRANSAKTIONEN UND DATENINTEGRITÄT Concurrency Control and Recovery in Database Systems P.A. Bernstein, V. Hadzilacos, N. Goodman Addison Wesley, 1987. Kapitel 1. und 6. Grundlagen der Datenbanksysteme
MehrI Grundlagen der parallelen Programmierung 1
vii I Grundlagen der parallelen Programmierung 1 1 Einführung...... 3 1.1 Paradigmenwechsel in der Softwareentwicklung..... 4 1.2 Anwendungsbereiche...... 5 1.3 Parallelität in der Hardware..... 5 1.3.1
MehrIsolationsstufen für Transaktionen. Dr. Karsten Tolle
Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)
MehrHauptseminar Multicore Programming: Transactional Memory
Hauptseminar Multicore Programming: Transactional Memory Christian Vaitl 07 Mai 2009 1 Inhaltsverzeichnis 1 Das Problem 3 2 Der traditionelle Ansatz 3 2.1 Arten von Locks................................
MehrNebenläufige Programmierung: Praxis und Semantik. Zugriff auf mehrere Ressourcen
Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Zugriff auf mehrere Ressourcen WS 2009/10 Deadlocks bei mehreren Ressourcen Transactional Memory Übersicht 1
MehrEinführung in Subversion
Einführung in Subversion Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Was ist Subversion? Ein Server-basiertes Versions-Verwaltungs- System Ermöglicht mehreren Benutzern die gemeinsame
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Das Java-Speichermodell Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Geschichte des Speichermodells Kapitel 17 der Java-Sprachdefinition
MehrTransaktionen in Praxis. Dr. Karsten Tolle Vorl
Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction
MehrSynchronisation in Java. Invisible Web
Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation
MehrDieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.
Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,
Mehr1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL
1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion
MehrDatenbanken Konsistenz und Mehrnutzerbetrieb III
Datenbanken Konsistenz und Mehrnutzerbetrieb III 1. Oracle Architektur! Komponenten des Oracle Servers! Zugriff über Netzwerk 2. Zugriffsrechte! Starten und Schließen der Datenbank! Nutzer und Rollen!
MehrJava Concurrency Utilities
Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),
Mehr16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2
16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Motivation Fehlerbehandlung
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
MehrObjektorientierte Datenbanken
OODB 10 Slide 1 Objektorientierte Datenbanken Vorlesung 10 vom 24.06.2004 Dr. Sebastian Iwanowski FH Wedel OODB 10 Slide 2 Inhalt heute: JDO letzter Teil Wiederholung vom letzten Mal: Lebenszykluszustände
MehrTransaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen
Transaktionen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Motivation ACID-Eigenschaften Übersicht Transaktionen Motivation ACID-Eigenschaften Ursachen für Logging und Backup
MehrPostgreSQL im Cluster. Hans-Jürgen Schönig Hans-Jürgen Schönig
PostgreSQL im Cluster Über uns PostgreSQL Dienstleistungen Cybertec bietet Ihnen... 24x7 Support für PostgreSQL PostgreSQL Consulting Performance Tuning PostgreSQL Training Cloud & Clustering PostgreSQL
MehrDatenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München Transaktions-Konzept (1) Beispiel: op 1 BOT op 2 read(k 1
MehrKommunikation und Datenhaltung
Kommunikation und Datenhaltung Transaktionsverwaltung Überblick über den Datenhaltungsteil Motivation und Grundlagen Architektur von Datenbanksystemen Datenbankanfragen Relationenmodell und Relationenalgebra
MehrLiteratur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14
Literatur und Quellen Datenbanken Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Wintersemester 2013/14 Lektüre zu den Themen : Kapitel 9 () aus Kemper und Eickler:
MehrBeispiel für überladene Methode
Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter
MehrWo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte
Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte entstehen durch... globale Objektvereinbarung: T o; blocklokale Objektvereinbarung: {.. T o;.. durch expliziten Aufruf
MehrNebenläufige Programme mit Python
Nebenläufige Programme mit Python PyCon DE 2012 Stefan Schwarzer, SSchwarzer.com info@sschwarzer.com Leipzig, Deutschland, 2012-10-30 Nebenläufige Programme mit Python Stefan Schwarzer, info@sschwarzer.com
MehrPraktikum aus Softwareentwicklung 2, Stunde 5
Praktikum aus Softwareentwicklung 2, Stunde 5 Lehrziele/Inhalt 1. Threads Threads Threads sind parallele, oder auf Rechnern mit nur einer CPU quasi-parallele, Programmabläufe in Java. Sie können beispielsweise
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrTransactional Memory for Distributed Systems
Transactional Memory for Distributed Systems Michael Schöttner, Marc-Florian Müller, Kim-Thomas Möller, Michael Sonnenfroh Heinrich-Heine Universität Düsseldorf Abteilung Betriebssysteme 1 Michael Schöttner,
MehrTAV Übung 3. Übung 3: Verteilte Datenhaltung
Übung 3: Verteilte Datenhaltung 1. Serialisierung Konstruieren Sie Historien aus drei Transaktionen T1, T2 und T3, die folgende Merkmale aufweisen: 1. Die serielle Reihenfolge ist T1 vor T2 vor T3. 2.
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
Mehr9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1
9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1 9.3 Fehlerbehandlung Im realen Betrieb eines Datenbanksystems muss mit Fehlersituationen gerechnet werden. Transaktionsfehler: Hierunter verstehen
MehrPessimistische Sperrverfahren für Transaktionen. Pessimistische Sperrverfahren für Transaktionen - Implementierung - von Oliver Lemm
Pessimistische Sperrverfahren für Transaktionen - Implementierung - von Oliver Lemm Oliver Lemm Seite 1/24 I. Übersicht der Theorie I. Zusammenfassung der Theorie 2 Phasen Sperre in der Theorie & Deadlocks
MehrBetriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion
Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrÜbungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 4. Lösung
Dr. rer. nat. Sven Groppe Übungen zur Vorlesung Mobile und Verteilte Datenbanken WS 2008/2009 Blatt 4 Lösung Aufgabe 1: Bestimmen Sie zu den folgenden Transaktions-Schedules, ob diese (konflikt-) serialisierbar
MehrSoftware-Engineering und Datenbanken
Software-Engineering und Datenbanken Transaktionskonzepte 1 Der Transaktionsbegriff Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen überführen.
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrInhaltsverzeichnis. Inhaltsverzeichnis
Inhaltsverzeichnis Das Script für die Lehrveranstaltung Datenmanagement wurde im Wintersemester 2007/2008 komplett überarbeitet und neu strukturiert. Wir bitten darum, eventuelle Fehler im Script an Milan
MehrWeitere Verbesserungen
Weitere Verbesserungen Welcher Cache liefert aktuellen Block falls mehrere Caches Block im Zustand S halten? Lösung: Einführung eines weiteren Zustands O (Owner) Zustand O besagt: Eigentümer des Blocks
MehrOPTIMISTIC & PESSIMISTIC LOCK Design Patterns PILLER NADIA SARBACH MATTHIAS
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 )
MehrDatenbankadministration
Datenbankadministration 11. Synchronisation AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Transaktion Transaktion
MehrÜbungen zu Datenbanksysteme
Institut für Informatik Universität Osnabrück, 30.06.2009 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/ dbs Dipl.-Math. Patrick Fox Abgabe bis 06.07.2009, 12:00 Uhr Aufgabe 10.1 (35 Punkte)
MehrAlgorithmen implementieren. Implementieren von Algorithmen
Algorithmen implementieren Implementieren von Algorithmen Um Algorithmen ablaufen zu lassen, muss man sie als Programm darstellen (d.h. implementieren) Wie stellt man die algorithmischen Strukturelemente
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
MehrSynchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.
OPTIMISTIC CONCURRENCY CONTROL Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt. Abbruch einer Transaktion
MehrKapitel 3 Synchronisation
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2014 Kapitel 3 Synchronisation Vorlesung: PD Dr. Peer Kröger
MehrInvalidierungs- und Update-basierte Cache-Kohärenz-Protokolle
Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle Architecture of Parallel Computer Systems WS15/16 J.Simon 1 SC mit Write-Back Caches Beweisidee: Behandlung von Reads wie beim Write-Through
MehrInformatik II Übung 5
Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrDatenbank- Verwaltungssysteme
Datenbank- Verwaltungssysteme Diana Troancă Babeș-Bolyai Universität Fakultät Mathematik und Informatik Dozent: Diana Troancă E-mail: dianat [at] cs.ubbcluj.ro Website: www.cs.ubbcluj.ro/~dianat/ Feedback
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
Mehr1 Referentielle Aktionen
1 Referentielle Aktionen Betrachten Sie das folgende Datenbankschema: Person(Vorname, Nachname, DOB, Wohnort, Lieblingsfilm Film.IMDb-ID, Videothek Videothek.VID) Film(IMDb-ID, Titel, (ProduzentVN, ProduzentNN)
MehrVorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.
Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte
MehrCORSO Space Based Computing mit Java
CORSO Space Based Computing mit Java Dipl.-Ing. Alexander Forst-Rakoczy TECCO Software Entwicklung AG A-1040 Wien, Prinz Eugen-Str. 58, E-Mail: info@tecco.at Web: www.tecco.at, Tel: (431) 5039240-0, Fax:
MehrLarge-scale Incremental Processing Using Distributed Transactions and Notifications
Percolator Large-scale Incremental Processing Using Distributed Transactions and Notifications Daniel Peng and Frank Dabek 1 Ausgangslage 10 12 10 16 10 9 Webseiten Byte Daten Updates/Tag 2 MapReduce Batch-Job
MehrDatenbanken 1. Sommersemester Übung 8
Datenbanken 1 Sommersemester 2017 Übung 8 (v3.0-9.6.2017) Übersicht Aufgabe 1: Einfache Transaktionen Model (Lock/Unlock) Aufgabe 2: 2-Phasen-Sperrprotokoll (Two phase locking) Aufgabe 3: 2-Phasen-Sperrprotokoll
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrTag 4 Inhaltsverzeichnis
Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik
MehrCompute Unified Device Architecture CUDA
Compute Unified Device Architecture 06. Februar 2012 1 / 13 Gliederung 2 / 13 : Compute Unified Device Architecture entwickelt von Nvidia Corporation spezifiziert Software- und Hardwareeigenschaften Ziel:
Mehr... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank
Techniken der Schedule-Realisierung T 1 T 2 T 3.... T n Isolations-Eigenschaft wird durch den Scheduler sichergestellt. Aufgabe: : Koordination des Ablaufs konkurrierender Transaktionen so, dass deren
MehrEinfaches MSI-Writeback-Inval-Protokoll
Einfaches MSI-Writeback-Inval-Protokoll Write-Back Cache typischerweise Write-allocate bei einem Write-Miss Zustände Invalid (I): Shared (S): Kopien in einem oder mehreren Caches Dirty or Modified (M):
MehrTransaktionalen Speicher optimieren mit STO
Transaktionalen Speicher optimieren mit STO Schriftliche Ausarbeitung zum Hauptseminar Martin Rabe Technische Universität Ilmenau martin.rabe@tu-ilmenau.de 6. Februar 2017 Abstract Um die meiste Performance
MehrVorstellung der SUN Rock-Architektur
Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Vorstellung der SUN Rock-Architektur Hauptseminar Ronald Rist Dresden, 14.01.2009
MehrDatenbanken 1. Sommersemester Übung 8
Datenbanken 1 Sommersemester 2017 Übung 8 (v2.0-9.6.2017) Übersicht Aufgabe 1: Einfache Transaktionen Model (Lock/Unlock) Aufgabe 2: 2-Phasen-Sperrprotokoll (Two phase locking) Aufgabe 3: 2-Phasen-Sperrprotokoll
MehrÜbung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012
Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2
15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Motivation Fehlerbehandlung Übung
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen
Idee Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
MehrLock-free Datenstrukturen
Lock-free Datenstrukturen Eine Einführung in die lock-free Programmierung Burak Ok Friedrich-Alexander Universität Erlangen-Nürnberg (FAU) 24. Januar 2017 burak.ok@fau.de Lock-free Datenstrukturen (24.
MehrTeil V. Generics und Kollektionen in Java
Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für
MehrVerteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase
Verteilte Systeme Replikation & Konsistenz I Prof. Dr. Oliver Haase 1 Überblick Replikation & Konsistenz I Ziele von Replikation Replikationsmodelle datenzentriert Client-zentriert Replikation & Konsistenz
MehrJava-Concurrency für Fortgeschrittene. arno.haase@haase-consulting.com
Java-Concurrency für Fortgeschrittene arno.haase@haase-consulting.com We should forget about small efficiencies, say about 97% of the time: Premature Optimization is the root of all evil. Yet we should
MehrKlausur Programmieren 2 SS 2016
Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt
MehrThreads Einführung. Zustände von Threads
Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)
MehrTool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel
Tool-Chain Übung Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" 2009 Sebastian Meyer und Kai Stapel 05.05.2009 Überblick SVN Grundlagen SVN in Eclipse Ant in Eclipse Cobertura
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrMächtigkeit von 2PL. Geben Sie einen Schedule S an, der. konfliktserialisierbar, jedoch nicht bei Anwendung von 2PL entstehbar. ist.
9. Transaktionsverwaltung 9.2. Mehrbenutzerkontrolle Rückblick Rückblick Geben Sie einen Schedule S an, der ist. konfliktserialisierbar, jedoch nicht bei Anwendung von 2PL entstehbar Mächtigkeit von 2PL
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 OpenMP-Programmierung Teil III Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung
Mehr3.6 Transaktionsverwaltung
3.6 Transaktionsverwaltung Transaktionen erlauben Bündelung von Operationen und gelten als wichtigster Beitrag des Bereichs Datenbanken zur Informatik; sie werden heute auch außerhalb von Datenbanksystemen
MehrLinked Lists The Role of Locking
Clara Lüling, Stephan Bittner Linked Lists The Role of Locking Verkettete Liste - Die Rolle des Sperrens Gliederung Linked Lists The Role of Locking 1. Verkettete Listen 2. Algorithmen 1. Coarse-Grained
MehrMulti-Threading wie in C++11
Multi-Threading wie in C++11 Franco Chiappori Embedded Computing Conference 2013 Reiseroute Guards Lock-Free Data Structures Futures Promises Atomic Types Memory Barriers Compiler / Prozessor Compiler
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrTransactional Memory: Invyswell und BlueGene/Q TM
Transactional Memory: Invyswell und BlueGene/Q TM Karl Balzer 29. September 2015 Inhaltsverzeichnis 1 Einleitung 3 2 Transactional Memory: Funktionsweise und Eigenschaften 5 2.1 Konflikterkennung..............................
MehrTRANSAKTIONEN UND DATENINTEGRITÄT
Transaktionen und Datenintegrität 1 TRANSAKTIONEN UND DATENINTEGRITÄT Concurrency Control and Recovery in Database Systems P.A. Bernstein, V. Hadzilacos, N. Goodman Addison Wesley, 1987. Kapitel 1. und
Mehr