replikation und synchronisation 1. 2 replikation und synchronisation gliederung 1.motivation...
TRANSCRIPT
Replikation und Synchronisation
1
2
Replikation und SynchronisationGliederung
1. Motivation
2. Replikation
3. Synchronisation
4. Klassische Verfahren
5. Neue mobile Verfahren
6. SyncML (Synchronization Markup Language)
7. Zusammenfassung
3
1. Motivation
• Was ist Replikation?
– Ziel: Daten sollen in Offline-Phasen unabhängig auf einem Client bearbeitet werden können
– Replikation bezeichnet das Anlegen einer Kopie und damit die Einführung von Datenredundanz
– Daten werden dadurch auf mobilen Clients verfügbaroft auch nur Teile (Selektion, Projektion) der urspüngl. Relation(-> Nachforderungen, schwieriger Wiederabgleich)
Relation
Selektion
Projektion
4
Motivation
• Was ist Synchronisation?
– Auf den Clients geänderte Daten sollen wieder auf den Server rückübertragen werden
– Probleme entstehen, wenn auch dort die Daten zwischenzeitlich geändert wurden
– Ziel: Datenkonsistenz innerhalb einer Replikationsumgebung, da Inkonsistenzen zu schwerwiegenden Fehlern führen können
– Bei der Synchronisation werden die geänderten Daten nach bestimmten Verfahren (meistens konventionell, zeitstempelbasiert oder semantisch) abgeglichen
Replikation und Synchronisation sind wichtige Grundlagen für Offline-Szenarien
5
2 Replikation 2.1 Ursprung
• Ursprung der Replikation:– Ursprung in den verteilten Systemen und in den verteilten
Datenbanksystemen– Verteilte, nichtreplizierende (DB-)Systeme sind wesentlich anfälliger
für Ausfälle im Gegensatz zu zentralistisch ausgelegten Systemen– Um Ausfall von einem Knoten zu kompensieren, werden wichtige
Daten redundant auf mehreren Knoten abgespeichert– Auch Daten mit hohen Zugriffsraten werden auf mehrere Knoten
verteilt– Alle Knoten die replizierte Daten enthalten bilden zusammen die
Replikationsumgebung
6
2.2 Vorteile von Replikation
• Vorteile:– Höhere Verfügbarkeit durch Verteilung der Daten auf mehrere Knoten– Niedrigere Kommunikationskosten– Bessere Performanz durch lokalen Zugriff– Ermöglicht Lastverteilung (Zugriff auf Knoten mit geringster Last) – Vorbeugung gegenüber Datenverlust
– Replikation ist Grundlage für das Arbeiten mit Clients, die sich im Disconnected Mode befinden
Suche nach intelligenten Verfahren zur Auswahl der zu replizierenden Daten
7
2.3 Was ist ein Replikat?
• Definition– Ein Replikat ist eine Kopie, also eine redundante Speicherung
eines bereits existierenden Datenelements
– Datenelement kann ein Tupel, eine Relation, Teile einer Relation oder eine ganze Datenpartition sein
– Per se gibt es kein Originalelement, dieses kann aber bei Bedarf festgelegt werden
– Es können beliebig viele Kopien existieren
8
2.4 Zentrale Strategien beim Einsatzder Replikation
Übersicht:
• Kopie-Update-Strategien
• Fehlerbehandlungs-Strategien
• Synchronisations-Strategien konkurrierender Zugriffe
• Konsistenz-Strategien bei Lesetransaktionen
9
Zentrale Strategien beim Einsatzder Replikation
• Kopie-Update-Strategien: – Datenoperationen werden auf einem einzelnen Replikat ausgeführt– Die daraus resultierenden Änderungen werden auf 2 verschiedene
Arten an die anderen Kopien weitergegeben• Wenn alle Replikate gleichzeitig aktualisiert werden, spricht
man von Eager Replication• Wenn die Änderung asynchron an die anderen Replikate
weitergegeben wird, spricht man von Lazy Replication– Die Erlaubnis zur Änderung ist oft an spezifische Bedingungen
geknüpft und hängt oft von den anderen Kopien des Replikats ab (z.B. Quorum-Verfahren)