Seminar / Training
Das Einzelseminar vermittelt ACID und MVCC, Retry-Loops, Konfliktbereiche, Snapshot Reads, atomare Operationen, unbekannte Commit-Ergebnisse, Watches und Konkurrenztests. Die Themen werden von der fachlichen Einordnung über die Konfiguration beziehungsweise Implementierung bis zur kontrollierten Prüfung in einer zusammenhängenden Laborumgebung bearbeitet.
Jeder Themenblock enthält eine eigene Inhaltsübersicht, konkrete Arbeitsschritte und Prüfpunkte. Konfigurationen, Datenmodelle und Betriebsentscheidungen werden so dokumentiert, dass sie in Projekt- und Betriebsstandards übernommen werden können.
Inhaltsübersicht
- 1. ACID-Semantik, MVCC und Strict Serializability
- 2. Retry-Loops und Fehlerklassifikation
- 3. Konfliktbereiche und Konkurrenzdesign
- 4. Snapshot Reads und explizite Validierung
- 5. Atomare Operationen und konfliktarme Zähler
- 6. Unbekannte Commit-Ergebnisse und Idempotenz
- 7. Watches, Benachrichtigung und Polling-Fallback
- 8. Nebenläufigkeitstests und Invarianten
1. ACID-Semantik, MVCC und Strict Serializability
Kapitelinhaltsverzeichnis
- 1.1 Einordnung und Zielsetzung
- 1.2 Fachthemen
- 1.3 Schritt-für-Schritt-Übung
- 1.4 Prüfpunkte
Einordnung und Zielsetzung
Die Transaktionsgarantien werden mit konkurrierenden Abläufen praktisch überprüft. Dabei wird zwischen Snapshot innerhalb einer Transaktion, Commit-Reihenfolge und dauerhafter Bestätigung unterschieden.
Fachthemen
- Snapshot einer Transaktion
- Optimistische Nebenläufigkeit
- Causal Read und Durability
Schritt-für-Schritt-Übung: Transaktionsgarantien experimentell prüfen
- Schritt 1: Zwei parallele Clients mit kontrollierten Lese- und Schreibfolgen vorbereiten.
- Schritt 2: Identische Read Versions und unterschiedliche Commit-Reihenfolgen beobachten.
- Schritt 3: Einen echten Read-Write-Konflikt und einen konfliktfreien Blind Write erzeugen.
- Schritt 4: Sichtbare Zustände vor und nach erfolgreichem Commit protokollieren.
- Schritt 5: Die beobachteten Abläufe einem seriellen Ergebnis zuordnen.
Prüfpunkte
- Die Umsetzung berücksichtigt Snapshot einer Transaktion und ist reproduzierbar dokumentiert.
- Das Verhalten von optimistische Nebenläufigkeit ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
2. Retry-Loops und Fehlerklassifikation
Kapitelinhaltsverzeichnis
- 2.1 Einordnung und Zielsetzung
- 2.2 Fachthemen
- 2.3 Schritt-für-Schritt-Übung
- 2.4 Prüfpunkte
Einordnung und Zielsetzung
Retry-Loops sind ein fester Bestandteil der Clientprogrammierung. Die Schleife darf nur transaktionale Datenbankoperationen automatisch wiederholen; externe Nebenwirkungen benötigen eigene Kontrolle.
Fachthemen
- On_error und Backoff
- Transiente und nicht wiederholbare Fehler
- Nebenwirkungen außerhalb der Transaktion
Schritt-für-Schritt-Übung: einen sicheren Retry-Loop implementieren
- Schritt 1: Transaktionsobjekt und Retry-Schleife nach Binding-Konvention aufbauen.
- Schritt 2: Reads, Writes und Commit innerhalb des kontrollierten Blocks platzieren.
- Schritt 3: Fehler an die Binding-Funktion für Backoff und Reset übergeben.
- Schritt 4: Dateizugriffe, Nachrichtenversand und sonstige Nebenwirkungen aus der Schleife entfernen.
- Schritt 5: Konflikte und transiente Fehler gezielt auslösen und Wiederholungsverhalten messen.
Prüfpunkte
- Die Umsetzung berücksichtigt on_error und Backoff und ist reproduzierbar dokumentiert.
- Das Verhalten von transiente und nicht wiederholbare Fehler ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
3. Konfliktbereiche und Konkurrenzdesign
Kapitelinhaltsverzeichnis
- 3.1 Einordnung und Zielsetzung
- 3.2 Fachthemen
- 3.3 Schritt-für-Schritt-Übung
- 3.4 Prüfpunkte
Einordnung und Zielsetzung
Konflikte entstehen aus überlappenden logischen Abhängigkeiten, nicht allein aus identischen Schreibschlüsseln. Ein gutes Design minimiert unnötige Read Conflict Ranges, ohne Konsistenz zu verlieren.
Fachthemen
- Read und Write Conflict Ranges
- Blind Writes und Snapshot Reads
- Konfliktdichte
Schritt-für-Schritt-Übung: Konflikte systematisch reduzieren
- Schritt 1: Reads und Writes einer langsamen Transaktion als Schlüsselbereiche erfassen.
- Schritt 2: Fachlich notwendige von unbeabsichtigten Konfliktbereichen trennen.
- Schritt 3: Breite Reads durch präzisere Schlüssel oder materialisierte Metadaten ersetzen.
- Schritt 4: Snapshot Reads nur dort einsetzen, wo veraltete Werte fachlich zulässig sind.
- Schritt 5: Konfliktrate und fachliche Invarianten nach jeder Änderung erneut testen.
Prüfpunkte
- Die Umsetzung berücksichtigt Read und Write Conflict Ranges und ist reproduzierbar dokumentiert.
- Das Verhalten von Blind Writes und Snapshot Reads ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
4. Snapshot Reads und explizite Validierung
Kapitelinhaltsverzeichnis
- 4.1 Einordnung und Zielsetzung
- 4.2 Fachthemen
- 4.3 Schritt-für-Schritt-Übung
- 4.4 Prüfpunkte
Einordnung und Zielsetzung
Snapshot Reads verhindern, dass gelesene Bereiche automatisch Konflikte erzeugen. Die Verwendung ist nur dann korrekt, wenn eine Änderung des gelesenen Werts die Schreibentscheidung nicht ungültig macht oder separat validiert wird.
Fachthemen
- Konfliktfreie Lesezugriffe
- Zulässige Staleness
- Manuelle Konsistenzprüfung
Schritt-für-Schritt-Übung: Snapshot Reads sicher einsetzen
- Schritt 1: Den fachlichen Zusammenhang zwischen gelesenen Werten und späteren Writes beschreiben.
- Schritt 2: Nur informationsgebende, nicht entscheidungsbestimmende Reads als Snapshot markieren.
- Schritt 3: Für notwendige Abhängigkeiten einen kleinen Validierungsschlüssel normal lesen.
- Schritt 4: Konkurrierende Änderungen während der Transaktion simulieren.
- Schritt 5: Invarianten und Konfliktrate mit und ohne Snapshot Read vergleichen.
Prüfpunkte
- Die Umsetzung berücksichtigt konfliktfreie Lesezugriffe und ist reproduzierbar dokumentiert.
- Das Verhalten von zulässige Staleness ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
5. Atomare Operationen und konfliktarme Zähler
Kapitelinhaltsverzeichnis
- 5.1 Einordnung und Zielsetzung
- 5.2 Fachthemen
- 5.3 Schritt-für-Schritt-Übung
- 5.4 Prüfpunkte
Einordnung und Zielsetzung
Atomare Operationen führen eine serverseitige Transformation ohne clientseitiges Lesen durch. Dadurch sinkt die Konfliktrate, solange derselbe Schlüssel nicht zusätzlich strikt gelesen wird.
Fachthemen
- Add, Min, Max und Bitoperationen
- Blind Mutation
- Lesen desselben Schlüssels
Schritt-für-Schritt-Übung: einen skalierbaren Zähler implementieren
- Schritt 1: Zählerformat und Byte-Repräsentation eindeutig festlegen.
- Schritt 2: Eine atomare Add-Operation ohne vorheriges Lesen verwenden.
- Schritt 3: Parallel viele Aktualisierungen ausführen und Commit-Ergebnisse messen.
- Schritt 4: Lesepfade getrennt von schreibenden Transaktionen gestalten.
- Schritt 5: Überlauf, Rücksetzung und Aggregation verteilter Teilzähler testen.
Prüfpunkte
- Die Umsetzung berücksichtigt Add, Min, Max und Bitoperationen und ist reproduzierbar dokumentiert.
- Das Verhalten von Blind Mutation ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
6. Unbekannte Commit-Ergebnisse und Idempotenz
Kapitelinhaltsverzeichnis
- 6.1 Einordnung und Zielsetzung
- 6.2 Fachthemen
- 6.3 Schritt-für-Schritt-Übung
- 6.4 Prüfpunkte
Einordnung und Zielsetzung
Bei Kommunikationsfehlern kann der Client den Commit-Status nicht sicher kennen. Wiederholbare Geschäftsoperationen benötigen daher eine vor der Retry-Schleife erzeugte Identität und einen transaktionalen Abschlussnachweis.
Fachthemen
- Commit_unknown_result
- Deterministische Operations-ID
- Deduplizierungsschlüssel
Schritt-für-Schritt-Übung: einen idempotenten Geschäftscommit entwerfen
- Schritt 1: Eine stabile Operations-ID außerhalb der Retry-Schleife erzeugen.
- Schritt 2: Einen Deduplizierungsschlüssel aus Operation und Fachobjekt ableiten.
- Schritt 3: Zu Beginn der Transaktion prüfen, ob der Abschlussnachweis bereits existiert.
- Schritt 4: Fachänderung und Abschlussnachweis gemeinsam committen.
- Schritt 5: Unbekannte Ergebnisse und wiederholte Aufrufe durch Fehlerinjektion testen.
Prüfpunkte
- Die Umsetzung berücksichtigt commit_unknown_result und ist reproduzierbar dokumentiert.
- Das Verhalten von deterministische Operations-ID ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
7. Watches, Benachrichtigung und Polling-Fallback
Kapitelinhaltsverzeichnis
- 7.1 Einordnung und Zielsetzung
- 7.2 Fachthemen
- 7.3 Schritt-für-Schritt-Übung
- 7.4 Prüfpunkte
Einordnung und Zielsetzung
Watches signalisieren Änderungen an Schlüsseln, ersetzen aber kein dauerhaftes Ereignisprotokoll. Robuste Verbraucher kombinieren Beobachtung mit einer erneuten Zustands- oder Cursorprüfung.
Fachthemen
- Schlüsselbeobachtung
- Re-Registrierung nach Auslösung
- Verlusttolerante Verarbeitung
Schritt-für-Schritt-Übung: eine robuste Änderungsbenachrichtigung bauen
- Schritt 1: Einen stabilen Signal- oder Versionsschlüssel definieren.
- Schritt 2: Aktuellen Zustand lesen und Watch im passenden Transaktionskontext registrieren.
- Schritt 3: Nach Auslösung den Zustand erneut lesen und ausstehende Arbeit bestimmen.
- Schritt 4: Watch vor der nächsten Wartephase neu registrieren.
- Schritt 5: Clientneustart, Netzwerkunterbrechung und mehrere schnelle Änderungen testen.
Prüfpunkte
- Die Umsetzung berücksichtigt Schlüsselbeobachtung und ist reproduzierbar dokumentiert.
- Das Verhalten von Re-Registrierung nach Auslösung ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
8. Nebenläufigkeitstests und Invarianten
Kapitelinhaltsverzeichnis
- 8.1 Einordnung und Zielsetzung
- 8.2 Fachthemen
- 8.3 Schritt-für-Schritt-Übung
- 8.4 Prüfpunkte
Einordnung und Zielsetzung
Transaktionale Fehler zeigen sich häufig erst unter gezielter Konkurrenz. Tests steuern Startpunkte, Commit-Reihenfolgen und Wiederholungen und prüfen anschließend fachliche Invarianten.
Fachthemen
- Deterministische Testfälle
- Parallelität und Barrieren
- Invariantenprüfung
Schritt-für-Schritt-Übung: einen reproduzierbaren Konkurrenztest erstellen
- Schritt 1: Eine konkrete Invariante und zwei konkurrierende Operationen definieren.
- Schritt 2: Clients mit Barrieren an kritischen Lese- und Commit-Punkten synchronisieren.
- Schritt 3: Mehrere erwartete Konflikt- und Erfolgsfolgen ausführen.
- Schritt 4: Endzustand, Commit-Anzahl und Deduplizierungsdaten prüfen.
- Schritt 5: Den Test automatisiert mit vielen Wiederholungen und zufälligen Verzögerungen betreiben.
Prüfpunkte
- Die Umsetzung berücksichtigt deterministische Testfälle und ist reproduzierbar dokumentiert.
- Das Verhalten von Parallelität und Barrieren ist mit einem positiven und einem negativen Testfall geprüft.
- Abbruch-, Rückfall- und Eskalationskriterien sind eindeutig benannt.
Fachbereichsleitung / Trainerleitung / Ansprechpersonen
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage: 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Softwareentwicklung, Datenarchitektur, Backend-Teams und technische Qualitätssicherung |
| Voraussetzungen: | Programmierkenntnisse, Erfahrung mit Transaktionen und grundlegende FoundationDB-Nutzung |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Fachvortrag, Demonstrationen, geführte Übungen und Praxisaufgaben am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmenden |
| Sprache: | Deutsch - bei Firmenseminaren auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
