Replikation und Synchronisation
Replikation und Synchronisation Gliederung Motivation Replikation Synchronisation Klassische Verfahren Neue mobile Verfahren SyncML (Synchronization Markup Language) Zusammenfassung
1. Motivation Was ist Replikation? Projektion Selektion 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ügbar oft auch nur Teile (Selektion, Projektion) der urspüngl. Relation (-> Nachforderungen, schwieriger Wiederabgleich) Projektion Relation Selektion
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
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
2.2 Vorteile von Replikation 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
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
2.4 Zentrale Strategien beim Einsatz der Replikation Übersicht: Kopie-Update-Strategien Fehlerbehandlungs-Strategien Synchronisations-Strategien konkurrierender Zugriffe Konsistenz-Strategien bei Lesetransaktionen
Zentrale Strategien beim Einsatz der 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)