Er hat es geschafft. Carl “C.J.” Collier, hat seinen ersten Artikel in der Developer Zone von MySQL plaziert. Der Artikel Installing MySQL MaxDB Synchronization Manager beschreibt die grundlegende Installation des Synchronization Managers von MaxDB.
Glückwunsch, CJ!
Replikation
Der Synchronization Manager ist ein Produkt, das man im Auge behalten sollte. Ich sage das nicht, um Guerilla-Marketing für MaxDB zu betreiben, sondern weil mir der Ansatz gefällt. Der SynchManager verwendet eine Reihe von Java-Technologien, um – theoretisch – beliebige Datenbanken zu synchronisieren oder auch zu replizieren. Stark vereinfacht, empfängt der SynchManager Nachrichten von allen Replikationsteilnehmern, speichert diese bei Bedarf in einer gesonderten (MaxDB-)Datenbank und entscheidet anhand von benutzerdefinierten Regeln, wie die Nachrichten weitergeleitet werden sollen. Die Nachrichten informieren über Änderungen im Datenbestand der Replikationsteilnehmer. Erzeugt werden die Nachrichten über Trigger, die in den jeweiligen Datenbanken angelegt werden.
Das Spannende am SynchManager ist das Konzept der Nachrichten und die zentrale Verwaltungskomponente in der Mitte einer sternförmigen Topologie. Anders als bei der MySQL-Replikation ist der Nachrichtenaustausch nicht uni-direktional (sieht man von A->B->C Ketten ab) sondern bi-direktional (A< ->B). Es gibt also keine strikte Trennung zwischen einem Master und einem Client sondern einfach nur Replikationsteilnehmer, die Nachriten bi-direktional austauschen.
In einer GUI kann konfiguriert werden welche Nachrichten weitergeleitet werden. Damit läßt sich bestimmen, daß nicht jede Änderungsoperation in einem Replikationsteilnehmer zu Änderungen in einem anderen Teilnehmer führt. Richtig spannend wird es jedoch erst, wenn man lernt, daß auch noch die Nachricht verändert werden kann. Eine Einfügeoperation in Teilnehmer 1 Tabelle B, Spalte C muß nicht in Tabelle B, Spalte C auf Teilnehmer 2 übersetzt werden. Spätestens jetzt wird es interessant.
SAP hat m.W. den Synchronization Manager ursprünglich entwickelt um Mobile Devices mit MaxDB zu synchronisieren. Mir kam jedoch sofort Data Warehousing in den Kopf als ich das erste Mal vom SynchManager hörte. Kann man einen Warehousing Server füttern mit aggregierten Daten von den Datenquellen? Diese Frage allein, führte bei mir zu einem Interesse am SynchManager.
Mehr gibt es unter http://dev.mysql.com/doc/maxdb/pdf/synchman_beta.pdf