Replikation (Datenverarbeitung)
Replikation von Daten
Eine Replikation ist eine Verdopplung bzw. Verfielfältigung von Daten. Der Datenbestand der replizierten Daten ist in der Regel mit dem Original identisch. Die vervielfältigten Daten (Replikate) werden für gewöhnlich an unterschiedlichen Standorten gehalten. Dies dient einerseits zur Datensicherung andererseits ermöglicht es die Betrachtung (und in bestimmten Fällen sogar zur Bearbeitung) von großen Datenmengen an voneinander getrennten Orten ohne Netzlast (siehe Computernetzwerk) zu verursachen.
Mitunter ist es wichtig zu wissen welche Aktualität die Replikate besitzen müssen. Je nach Art der Replizierung liegt zwischen der Bearbeitung/Erstellung der Primärdaten und ihrer Replizierung eine gewisse Zeitspanne. Diese Zeitspanne wird als "timeliness" meist aber als "latency" bezeichnet.
Synchrone Replication
Wenn die Primärdaten und Replikate gleiche Datensätze haben, also keine "latency" vorhanden ist, spricht man von Synchronität. Die primären und replizierten Datensätze sind also identisch.
In der Theorie: Eine synchrone, latencyfreie Replication wird mit der so genammten "two-phase-commit" (Zwei Phasen Bestätigung) gewährleistet.
Dabei werden mehrere Datenmanipulationen (Transaktionen) in eine Warteschlange (engl.: queue) gestellt und der Reihe nach abgearbeitet. Solange die erste
Transaktion in der Schlange nicht als erfolgreich von Replikat bestätigt (engl.: commited) wurde, werden die darauffolgenden Transaktionen nicht repliziert. Tritt ein Fehler auf wird die Transaktion auf dem Replikat zurückgefahren (engl.: roll back). Die darauffolgenden Transaktionen werden dann nicht mehr repliziert. Alle Nachfolgende und zukünntigen Transaktionen werden bis dahin in der Queue gespeichert bis der Fehler behoben wurde und die Verbindung zum Replikat wieder besteht.
In der Praxis: Ist ein 100%ig synchrones Replikationssystem nicht zu möglich. Je nach Netzwerkverbindung. Beispielsweise wenn primäre und replizierte Daten (geographisch) auseinander liegen. Zudem gibt es immer eine gewisse Verzögerung bei der two-phase-commit-Überprüfung.
Beispiele für eine synchrone Replication sind:
- Warm Standby Replikation von ASE-Sybase-Server Datenbanken
- Hot Standby Replikation von SQL-Server Microsoft Datenbanken
Asynchrone Replication
Wenn zwischen der Bearbeitung der primären Daten und der Replizierung eine latency liegt, spricht man von Asynchronität. Die Daten sind nur zu dem Zeitpunkt der Replikation synchron (identisch).
Eine einfache Variante der asynchronen Replikation ist die "File Transfer Replication", der Transfer von Dateien via FTP oder ssh.
Die Daten der Replicate stellen also nur eine Momentaufnahme der primären Daten zu einem bestimmten Zeitpunkt dar. Auf Datenabnkebene können so in kurzen Zeitintervallen die Transaktionslogs der Datenbanken von einem Server zum anderen transportiert und in die Datenbank eingelesen werden.
Unter Vorraussetzung eines intakten Netzwerkes entspricht die latency dann dem Zeitintervall in dem die Transaktionslogs geschrieben werden.