Adabas Cluster Services

Werbung
Data Sharing im Cluster
am Beispiel von Adabas
Arno Zude, Adabas-Entwicklung
Vortrag an der Universität Jena
2. Februar 2006
Themen
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Data Sharing im Cluster mit Adabas / 2.2.06 / 2 Software AG
Vorstellung
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Vortragender
Informatik studiert an der TH (heute: TU) Darmstadt
• mit Diplom abgeschlossen
Seit 1989 Software-Entwickler bei der Software AG in Darmstadt
• im Bereich DBMS Adabas Mainframe
Software AG
1969 gegründet
Adabas war das erste Produkt
heute:
• in 60 Ländern vertreten
• > 2600 Mitarbeiter (> 750 in Deutschland)
• > 400 Millionen Euro Jahresumsatz
spezialisiert auf Mainframes sowie Software-Integrationstechnologien
Data Sharing im Cluster mit Adabas / 2.2.06 / 3 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Adabas  Ursprung I
Entwicklung begann vor der Zeit von SQL
Flexible Datenzugriffswege über Feldinhalte
Datensatzbasierte Programmierschnittstelle
in gewissem Maße auch mengenbasiert
SQL-Schnittstelle über Zusatzprodukt oder Dritthersteller
z.B. ODBC-, JDBC-Schnittstellen
Nicht-SQL-Features
Multiple Felder
Periodengruppen
Dirty Read
u.a.
Data Sharing im Cluster mit Adabas / 2.2.06 / 4 Software AG
Adabas  Ursprung II
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Reputation für
hohe Performance
hohe Stabilität
geringen Administrationsaufwand
Eingesetzt hauptsächlich von
Banken
Behörden
Logistikunternehmen
Universitäten
Versicherungen
Verwaltungen
u.a.
Data Sharing im Cluster mit Adabas / 2.2.06 / 5 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Adabas  Terminologie
Adabas- und SQL-Terminologie im Vergleich:
Adabas-Term (deutsch)
Adabas-Term (englisch)
SQL-Term (englisch)
Datenbank
database
database
Datei
file
table
(Daten)satz
record
row
Feld
field
column
Deskriptor
descriptor
index
ET
ET (end transaction)
commit
BT
BT (backout transaction)
rollback
Data Sharing im Cluster mit Adabas / 2.2.06 / 6 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Adabas  Konzepte I
Datenbank enthält mehrere Files
File wird durch File-Kontrollblock
repräsentiert
enthält Verwaltungsinformationen
Datensätze stehen im Datenspeicher
werden durch ISNs identifiziert
ISN = Interne Satznummer
Datensätze werden über
Adresskonverter gefunden
Dateninhalte werden über Index und
zugeordnete ISNs gefunden
File-Kontrollblock
Index
Adresskonverter
Datenspeicher
Data Sharing im Cluster mit Adabas / 2.2.06 / 7 Software AG
Adabas  Konzepte II
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Daten abspeichern und wiederfinden
Transaktionskonzept
ACID-Eigenschaften
Mehrbenutzerfähigkeit
Recovery
Administration
Data Sharing im Cluster mit Adabas / 2.2.06 / 8 Software AG
Parallel Sysplex  Ursprung
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster-Technologie von IBM
für IBM Mainframes mit z/OS (früher MVS, OS/390)
Hardware und Software
Ziele:
Höhere Verfügbarkeit
Bessere Performance
Mittel:
Mehrfachauslegung der Komponenten
Verteilung der Arbeit
Load Balancing
Dienste für typische Cluster-Funktionalität (z.B. Cache, Lock)
Data Sharing im Cluster mit Adabas / 2.2.06 / 9 Software AG
Parallel Sysplex  Architektur
z/OS
Sysplex Timer
Lock
A
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
z/OS
C
List
Cache
z/OS
B
Coupling Facility
Shared
Disks
Shared
Disks
z/OS
D
Data Sharing im Cluster mit Adabas / 2.2.06 / 10 Software AG
Parallel Sysplex  Architektur
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Sysplex Timer
synchronisierte Zeitstempel auf allen verbundenen Systemen
Schnelle Verbindungen zur Coupling Facility (CF)
im Mikrosekundenbereich
• 10-100 mal schneller als I/O gegen schnelle Plattenspeicher
In vielen Fällen wartet die CPU auf Antwort von der CF
• Schnelle CF-Anfrage kostet etwa 10-15 Tausend Instruktionen
• Das ist ca. ¼ bis ⅓ eines durchschnittlichen Adabas-Kommandos!
Betrieb von mehreren Coupling Facilities möglich (empfohlen)
Duplexing von CF-Strukturen möglich
“shared everything“
gemeinsamer Plattenspeicher
“closely coupled“
getrennter Hauptspeicher, gemeinsamer CF-Speicher
Data Sharing im Cluster mit Adabas / 2.2.06 / 11 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Parallel Sysplex  Services I
Cross-System Coupling Facility (XCF)
gab es auch schon vor der Coupling Facility
Gruppenbildung
• automatische Benachrichtigung über Zu- und Abgänge
• zwangsweise Terminierung anderer Gruppenmitglieder
Kommunikation
• Austausch von Nachrichten
• Broadcast
• Timeout
Statusbeobachtung (in Adabas Cluster Services nicht verwendet)
• regelmäßige Lebenszeichen
Data Sharing im Cluster mit Adabas / 2.2.06 / 12 Software AG
Parallel Sysplex  Services II
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cross-System Extended Services (XES)
„Strukturen“ in der Coupling Facility
Cache-Struktur
• für den Betrieb eines gemeinsamen Caches
• effiziente Benachrichtigung über ungültig gewordene Datenelemente
Lock-Struktur
• für die Synchronisation von Operationen auf gemeinsamen
Ressourcen
• flexible Sperrprotokolle möglich
Listen-Struktur (von Adabas Cluster Services nicht verwendet)
• für den Betrieb gemeinsamer Datenstrukturen
• z.B. Auftragswarteschlange
weitere Dienste mehr administrativer Art
Data Sharing im Cluster mit Adabas / 2.2.06 / 13 Software AG
Adabas Cluster Services  Ziele I
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Erweiterung eines komplexen Systems (Adabas)
in ein verteiltes, auf mehreren separaten Rechnern laufendes
[noch komplexeres ☺] System (Adabas Cluster Services)
eine Datenbank
mehrere Server, die auf der gemeinsamen Datenbank arbeiten
Symmetrisch
Jeder Knoten im Cluster kann grundsätzlich alles machen
• insbesondere auch Updates durchführen
Hoch verfügbar
Wenn ein Knoten ausfällt  geplant oder ungeplant , arbeiten die
anderen mit der vollen Funktionalität weiter
Data Sharing im Cluster mit Adabas / 2.2.06 / 14 Software AG
Adabas Cluster Services  Ziele II
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Bessere Performance
„angemessener“ (nur leicht höherer) CPU-Verbrauch
höherer Durchsatz
gleiche oder kürzere Antwortzeiten
gute Skalierbarkeit (bei Vergrößerung des Clusters)
• geringer „Basis-Overhead“
• möglichst lineare Durchsatzsteigerung
Kompatibel mit Einzel-Adabas
Cluster-Einsatz transparent für Anwendungsprogramme
Anwendungsprogramme müssen nicht angepasst werden
Stabil, robust, für Produktionseinsatz geeignet
Data Sharing im Cluster mit Adabas / 2.2.06 / 15 Software AG
Cluster Services  Allgemeines
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Grundlegende Schwierigkeiten bei der Entwicklung von Cluster-Software:
konsistenten gemeinsamen Status behalten
Operationen auf gemeinsamen Ressourcen korrekt synchronisieren
• alle gemeinsamen Ressourcen identifizieren
• alle Operationen auf diesen Ressourcen identifizieren
möglichst wenig Aufwand (zur Laufzeit) für
• Synchronisation
• Data Sharing
möglichst wenig Interaktion zwischen den Knoten
• Je häufiger ein Knoten auf einen anderen warten muss:
– desto länger braucht er für seine Arbeit (→ Performance)
– desto höher ist das Risiko, von einem Ausfall des anderen
getroffen zu werden (→ Verfügbarkeit)
Recovery für Knotenausfall
„Kranken“ Knoten isolieren, damit nicht der ganze Cluster krank wird
Data Sharing im Cluster mit Adabas / 2.2.06 / 16 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Architektur
z/OS A
Lock
Benutzer
XE
Adabas
Nukleus
S
XES
Cache
XCF
Benutzer
Adabas
Nukleus
DB
Work
z/OS B
CF
DB
PLOG
PLOG
Work
Seq.
PLOG
Data Sharing im Cluster mit Adabas / 2.2.06 / 17 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Benutzer
Jeder Benutzer wird beim ersten Adabas-Kommando an einen der Nuklei im
Cluster gebunden
normalerweise an einen lokalen Nukleus
wenn das nicht geht, an einen entfernten (remote) Nukleus
Zugewiesener Nukleus hält den Benutzerkontext
z/OS A
Benutzer
Cluster
Nukleus A
z/OS B
z/OS C
Benutzer
Benutzer
Cluster
Nukleus C
Data Sharing im Cluster mit Adabas / 2.2.06 / 18 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Kommunikation
Interne Anfragen gezielt an einen oder pauschal an alle anderen Knoten gerichtet
Alle internen Anfragen mit Timeout versehen
Drastische, aber einfache Fehlerbehandlung:
unerwarteter Fehlercode abstürzen!
• „Knoten weg“ ist erwarteter Fehlercode
keine Antwort nicht antwortenden Knoten canceln!
danach: Online Recovery
Cluster
Nukleus B
Cluster
Nukleus A
?
Cluster
Nukleus C
Data Sharing im Cluster mit Adabas / 2.2.06 / 19 Software AG
Cluster Services  Synchronisation I
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
XES unterstützt flexible Sperrprotokolle
hierarchische Sperren
Benachrichtigung bei Sperrkonflikten
Entzug gehaltener Sperren (nach Benachrichtigung)
Adabas Cluster Services braucht aber nur einfache Standardsperren
Lesesperre (shared) ↔ Schreibsperre (exclusive)
• shared erlaubt andere shared
• exclusive schließt alle anderen aus
bei Sperrkonflikt:
warten bis Sperre frei ↔ Abbruch der Sperranforderung
Data Sharing im Cluster mit Adabas / 2.2.06 / 20 Software AG
Cluster Services  Synchronisation II
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Einphasige Synchronisation
Beispiel: Änderung eines globalen Parameters
Nukleus A
Nuklei B, C, ...
PARM-Sperre erwerben
(exklusiv, warten)
Parameter lokal ändern
Anfrage entgegennehmen
Anfrage an alle anderen
Knoten schicken
Parameter lokal ändern
Auf Antworten warten
Antwort zurückschicken
PARM-Sperre freigeben
Data Sharing im Cluster mit Adabas / 2.2.06 / 21 Software AG
Cluster Services  Synchronisation III
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Zweiphasige Synchronisation
Beispiel: Transaktionssynchronisation am Ende eines Online Save
Nukleus A
ETSYNC-Sperre erwerben
(exklusiv, nicht warten)
Keine neuen
Transaktionen starten
Phase 1
ET-Sync-Phase-1
Anfrage verschicken
Nuklei B, C, ...
Anfrage entgegennehmen
Keine neuen
Transaktionen starten
Alte Transaktionen
auslaufen lassen
Auf Antworten warten
Antwort zurückschicken
Alte Transaktionen
auslaufen lassen
A
Data Sharing im Cluster mit Adabas / 2.2.06 / 22 Software AG
Cluster Services  Synchronisation III
Nukleus A
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Nuklei B, C, ...
A
Synchronisierter
Zustand erreicht!
Phase 2
Neue Transaktionen
starten
ET-Sync-Phase-2
Anfrage verschicken
Anfrage entgegennehmen
Neue Transaktionen
starten
Auf Antworten warten
Antwort zurückschicken
ETSYNC-Sperre
freigeben
Data Sharing im Cluster mit Adabas / 2.2.06 / 23 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache I
Cache in CF sitzt logisch gesehen
„zwischen“ Datenbank und lokalem
Cache jedes Knoten
Verschiedene Cache Policies:
directory-only
• keine Daten im Cache
store-through
• keine „geänderten“ Daten im
Cache
store-in
• „geänderte“ Daten im Cache
• benötigt Cast-out-Prozesse
(Schreiben der geänderten
Blöcke in die Datenbank)
Adabas Cluster Services benutzt
Store-in Cache
schreibt nur geänderte Blöcke in
den Cache
Cluster
Nukleus A
Cluster
Nukleus B
Lokaler
Cache
Lokaler
Cache
CF
Cache
DB
DB
Data Sharing im Cluster mit Adabas / 2.2.06 / 24 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache II
Cache-Kohärenz
S
y
s
t
e
m
A
CF
Wird ein geänderter
Block in den Cache
geschrieben, werden
veraltete Kopien in
anderen lokalen
Caches invalidiert
Cache-Vektor
?
724
Lok. Cache
Adabas
Nukleus A
Cache
724
S
y
s
t
e
m
B
Cache-Vektor
Lokaler
Cache
Adabas
Nukleus B
Wenn Nukleus A seine
geänderte Kopie von
Block 724 in den Cache
schreibt, wird die veraltete
Kopie von Nukleus C
automatisch als ungültig
markiert. Nukleus B hat
keine Kopie dieses Blocks
und ist nicht betroffen.
S
y
s
t
e
m
C
Cache-Vektor
?
Lok. Cache
724
Adabas
Nukleus C
Data Sharing im Cluster mit Adabas / 2.2.06 / 25 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache III
Block lesen mit Sperre
Lesesperre kann für
mehrere Blöcke gelten
• Kein anderer darf den
Block ändern
Beim Lesen aus dem
Cache wird registriert,
dass dieser Knoten eine
Kopie des Blocks hat
• auch wenn der Block
gar nicht im Cache ist
Wird der Block später
geändert, dient die
Registrierung zur
Invalidierung der
veralteten Kopie
Lesesperre erwerben
(shared, warten)
Block lokal finden
und validieren
Block aus Cache lesen
OK?
N
J
J
Block verwenden
OK?
N
Block aus DB lesen
Lesesperre freigeben
Data Sharing im Cluster mit Adabas / 2.2.06 / 26 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache IV
Block ändern mit Sperre
Schreibsperre kann für
mehrere Blöcke gelten
• Kein anderer darf den
Block lesen
Oft müssen mehrere
logisch zusammengehörende Blöcke
geändert werden
Beim Design des
Sperrprotokolls auf
mögliche Deadlocks
achten!
Schreibsperre erwerben
(exklusiv, warten)
Block lokal finden
und validieren
Block aus Cache lesen
OK?
N
J
J
Block ändern
OK?
N
Block aus DB lesen
Block in Cache
schreiben
Schreibsperre freigeben
Data Sharing im Cluster mit Adabas / 2.2.06 / 27 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache V
Blocksperren sind teuer
Entweder viele Sperren mit
kleinem Wirkungsbereich
• z.B. Blocksperren
• viele Sperroperationen
Oder wenige Sperren mit großem
Wirkungsbereich
• z.B. hierarchische Sperren
• häufigeres Warten bei
parallelen Zugriffen
Blocksperren sind pessimistisch
erzeugen Aufwand auch ohne
parallele Zugriffe
Block lokal finden
Block validieren
OK?
J
Fertig
N
Block aus Cache lesen
OK?
J
Fertig
N
Block aus DB lesen
Block lesen ohne Sperre
Data Sharing im Cluster mit Adabas / 2.2.06 / 28 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache VI
Block lesen ohne Sperre möglich wenn
Zielobjekt im Block schon anders gesperrt ist
• z.B. Sperre auf Datensatzebene
Zielobjekt im Block nicht gesperrt zu werden braucht
• z.B. gewisse Verwaltungsinformationen
• Dirty Read
Inkonsistenzen zwischen logisch zusammengehörenden Blöcken
erkannt und kompensiert werden können
• z.B. Inkonsistenzen zwischen Adresskonverter und Datenspeicher
Block lesen ohne Sperre nicht möglich wenn
Inkonsistenzen zwischen logisch zusammengehörenden Blöcken nicht
erkannt und kompensiert werden können
• z.B. im Index (wird hier nicht weiter behandelt)
Data Sharing im Cluster mit Adabas / 2.2.06 / 29 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache VII
Block ändern ohne Sperre
Zielobjekt im Block
• kann gesperrt sein
– z.B. Datensatz
• muss aber nicht gesperrt sein
– z.B. nächste freie Satznummer
Das Schreiben des geänderten
Blocks in den Cache schlägt fehl,
wenn zwischen dem Validieren und
dem Schreibversuch ein anderer
Knoten den Block geändert und in
den Cache geschrieben hat
• In diesem Fall den Block neu
lesen und die Änderung
wiederholen
Block lesen und validieren
Block ändern
Block in Cache schreiben
N
OK?
J
Fertig
Data Sharing im Cluster mit Adabas / 2.2.06 / 30 Software AG
Cluster Services  Cache VIII
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Geänderte Blöcke sofort in den Cache zu schreiben ist teuer für update-
intensive Batch-Programme
Viele Blöcke können häufig geändert werden
• z.B. wenn sie viele Datensätze enthalten
Schreiben geänderter Blöcke in den Cache bis Transaktionsende
verzögern (verzögertes Publizieren)
Geänderte Blöcke sind weiterhin nicht gesperrt!
Wenn ein geänderter Block von einem anderem Knoten auch geändert
wurde, müssen alle Änderungen wiederholt werden
Beschreibungen von allen noch nicht publizierten Änderungen merken
Beim Wiederholen von Änderungen können auf einmal andere Blöcke
betroffen sein
• z.B. kein Platz für neuen Satz im ursprünglich vorgesehenen Block
Dabei können diese auch zu wiederholende Änderungen haben!
Das verzögerte Publizieren von Änderungen ist kompliziert!
Data Sharing im Cluster mit Adabas / 2.2.06 / 31 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Cache IX
Verzögertes Publizieren geänderter Blöcke kann scheinbare
Inkonsistenzen zwischen zusammengehörenden Blöcken hervorrufen
Beispiel: Datensatz mit gegebener ISN (Satznummer) lesen
Paralleler Update ist möglich (dirty read)
1. Adresskonverter-Block lesen
• Datensatz ist angeblich in Block Nr. 4711
2. Datenspeicherblock 4711 lesen
• Datensatz ist nicht im Block!
3. Andere Knoten auffordern, etwaige noch nicht publizierte
Änderungen dieser beiden Blöcke in den Cache zu schreiben
• Auf Antworten warten
4. Operation neu versuchen
• Wenn sich die beteiligten Blöcke nicht geändert haben, sind sie
wirklich inkonsistent zueinander
Data Sharing im Cluster mit Adabas / 2.2.06 / 32 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Adabas  Konzepte
Datenbank enthält mehrere Files
File wird durch File-Kontrollblock
repräsentiert
enthält Verwaltungsinformationen
Datensätze stehen im Datenspeicher
werden durch ISNs identifiziert
ISN = Interne Satznummer
Datensätze werden über
Adresskonverter gefunden
Dateninhalte werden über Index und
zugeordnete ISNs gefunden
File-Kontrollblock
Index
Adresskonverter
Datenspeicher
Data Sharing im Cluster mit Adabas / 2.2.06 / 33 Software AG
Cluster Services  Recovery I
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Zurücksetzen von Transaktionen (Backout, Rollback) funktioniert wie im
Einzel-Adabas
Restart Recovery (Offline Recovery) funktioniert im Wesentlichen wie im
Einzel-Adabas
aber die Datensicherungssätze aller Cluster-Nuklei werden dynamisch
in chronologische Reihenfolge gemischt
Recovery nach Ausfall eines, aber nicht aller Knoten (Online Recovery)
wird nach Ruhigstellen der Überlebenden auf Offline Recovery
zurückgeführt
• an dieser Stelle Verbesserungsbedarf
Data Sharing im Cluster mit Adabas / 2.2.06 / 34 Software AG
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster Services  Architektur
z/OS A
Lock
Benutzer
XE
Adabas
Nukleus
S
XES
Cache
XCF
Benutzer
Adabas
Nukleus
DB
Work
z/OS B
CF
DB
PLOG
PLOG
Work
Seq.
PLOG
Data Sharing im Cluster mit Adabas / 2.2.06 / 35 Software AG
Cluster Services  Recovery II
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Archive Recovery funktioniert nach dem Mischen der Datensicherungs-
sätze wie vorher
alt
Zwischenspeicher
für Sicherungssätze
neu
PLOG
PLOG
PLOG
PLOGs
mischen
Alle Sicherungssätze in
chronologischer Folge
Seq.
PLOG
Data Sharing im Cluster mit Adabas / 2.2.06 / 36 Software AG
Cluster Services  Erfahrungen I
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Die schwierigsten Komponenten sind am Ende nicht unbedingt
diejenigen, die die meisten Probleme bereiten
Wenn man Dinge sorgfältig macht, kann man sie auch korrekt
hinbekommen
Pay attention to all details
Performance ist wichtig
Insbesondere bei Cluster-Software muss sie schon beim Design
berücksichtigt werden
Der Overhead für Kommunikation, Synchronisation und Data Sharing
kann sehr leicht zu Performance-Problemen führen
Es ist wichtig, die Architektur des Systems, auf dem man aufbaut, zu
kennen und verstehen
Auch sehr schnelle Operationen können problematisch sein
• Kommunikation mit der Coupling Facility im Mikrosekundenbereich
(10-100 mal schneller als ein I/O)
• aber: verbraucht mehr CPU-Zeit als ein I/O!
Data Sharing im Cluster mit Adabas / 2.2.06 / 37 Software AG
Cluster Services  Erfahrungen II
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Cluster-Software kann trotz des inhärenten Overheads den CPU-
Verbrauch verringern, wenn sie Anfragen von entfernten (remote) Knoten
in lokale Anfragen umwandelt
Allein der Transport von Anfragen verbraucht CPU-Zeit
Der erste Cluster-Services-Kunde verteilte seine Cluster-Nuklei auf 14
bzw. 17 Systeme im Parallel Sysplex!
Kunden benutzen ihre Software nicht immer so, wie der Hersteller es
erwartet
Das Ändern von Blöcken ohne Blocksperren und das Sammeln von
Änderungen vor dem Publizieren im Cache haben sich bewährt
obwohl die dafür notwendige Logik komplex ist
obwohl schon einmal durchgeführte Änderungen gelegentlich
wiederholt werden müssen
Wenn die Knoten nicht miteinander reden können, funktioniert der ganze
Cluster nicht
passiert, wenn XCF nicht funktioniert (oder extrem langsam ist)
Data Sharing im Cluster mit Adabas / 2.2.06 / 38 Software AG
Cluster Services  Erfahrungen III
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Am problematischsten für die Verfügbarkeit eines Clusters ist der Fall,
dass ein Knoten auf Anfragen nicht reagiert
Risiko: Wenn ein Knoten krank ist, wird der ganze Cluster krank
Wie kann man wissen, dass ein anscheinend toter Knoten tatsächlich
tot ist?? Recovery ist erst dann erlaubt
Das zwangsweise Terminieren eines nicht antwortenden Knotens ist
im Prinzip richtig
• „Das Wohl aller (des Clusters) geht über das Wohl eines Einzelnen
(eines Knotens)“
... löst aber nicht das ganze Problem
• Auch zum Abstürzen braucht ein Knoten CPU-Zeit
• Was, wenn sein System überlastet ist??
Möglichkeiten zur Milderung (aufwendig):
• Kommunikation zwischen Knoten verringern
• gezieltes Recovery je nach fehlgeschlagener Operation
Data Sharing im Cluster mit Adabas / 2.2.06 / 39 Software AG
Cluster Services  Erfahrungen IV
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Lieber schnell abstürzen und dann schnell und zuverlässig Recovery
durchführen
... als viel Arbeit darin stecken, Abstürze unter günstigen Umständen
zu vermeiden
Höhere Verfügbarkeit heißt nicht unbedingt, dass ein Benutzer vom
Absturz eines (seines) Knotens nichts mitbekommt,
... als vielmehr, dass das System gleich danach weiterhin zur
Verfügung steht
Global synchronisierte Zeitstempel sind sehr nützlich für Cluster
Data Sharing im Cluster mit Adabas / 2.2.06 / 40 Software AG
Cluster Services  Erfahrungen V
Vorstellung
Adabas
Parallel Sysplex
Adabas Cluster Services
Erfahrungen
Die Versprechungen von Clustern,
• höhere Verfügbarkeit
• bessere Performance,
sind einhaltbar, aber das ist nicht einfach
Die höhere Komplexität erhöht auch die Fehleranfälligkeit und wirkt
damit gegen das Verfügbarkeitsziel
„No single point of failure“ ist ein anspruchsvolles Ziel
Man kann Prozessoren, Speicher, Platten, Netzwerkverbindungen,
usw. mehrfach auslegen, aber was ist mit
• der Software??
• den verwendeten Protokollen??
Data Sharing im Cluster mit Adabas / 2.2.06 / 41 Software AG
Zum Schluss
... Fragen?
... Vielen Dank!
Data Sharing im Cluster mit Adabas / 2.2.06 / 42 Software AG
Data Sharing im Cluster mit Adabas / 2.2.06 / 43 Software AG
Herunterladen