PostgreSQL im Cluster Hans-Jürgen Schönig www.postgresql-support.de Hans-Jürgen Schönig www.postgresql-support.de Über uns Hans-Jürgen Schönig www.postgresql-support.de PostgreSQL Dienstleistungen I Cybertec bietet Ihnen . . . I I I I I 24x7 Support für PostgreSQL PostgreSQL Consulting Performance Tuning PostgreSQL Training Cloud & Clustering Hans-Jürgen Schönig www.postgresql-support.de PostgreSQL Cluster Features Hans-Jürgen Schönig www.postgresql-support.de Use Cases: I I I I I Gegen Hardware Fehler absichern Lesezugriffe skalieren Automatisches Failover ermöglichen Daten geographisch verteilen Analytische Abfragen skalieren Hans-Jürgen Schönig www.postgresql-support.de Use case: Hardwarefehler I I I Hardware kann jederzeit fehlschlagen Redundanz ist nötig Fallstrick: I I Die Disks zu spiegeln schützt nicht gegen Filesystem Corruption ‘Die SAN macht das’ kann gefährlich sein Hans-Jürgen Schönig www.postgresql-support.de Lösung: Streaming Replication I I I I PostgreSQL bietet sogenannte ‘Streaming Replication’ Das Transaction Log wird repliziert Ein Master bedient beliebig viele Slaves Replikation erfolg BINÄR Hans-Jürgen Schönig www.postgresql-support.de Technischer Hintergrund I I Warum nicht einfach alle SQLs am Slaves ausführen? Das selbe SQL liefert nicht immer das selbe Ergebnis INSERT INTO foo VALUES (1, 'hans', random()); I Nur das Transaktion Log garantiert Konsistenz Hans-Jürgen Schönig www.postgresql-support.de Features I I I Der Master ist im Read / Write Modus Die Slaves sind Read / Only Die Replikation erfolgt . . . I I ‘sofort’ asynchron (= der Master wartet nicht auf den Slave) Hans-Jürgen Schönig www.postgresql-support.de Use case: Lesezugriffe skalieren I I I Lesezugriffe können mit Slaves skaliert werden De facto kein Overhead Extremst robust Hans-Jürgen Schönig www.postgresql-support.de Durability kontrollieren I I Replikation kann synchron oder asynchron passieren Durability kann für jede Transaktion definiert werden I I I Wichtige Daten: Strenges COMMIT Unwichtige Daten: So schnell wie möglich Enorm wichtig für Performance I Speed und Durability schließen sich aus Hans-Jürgen Schönig www.postgresql-support.de Load Balancing I I Lesezugriffe können einfach verteilt werden Schreibzugriffe sind schwieriger: I I I Multimaster bringt gar nichts Es muss jeder Knoten alle Daten schreiben Das erhöht nur die Komplexität Hans-Jürgen Schönig www.postgresql-support.de Use case: Automatisches Failover I I Master / Slave ist ideal für automatisches Failover Der Master hat immer die ‘Wahrheit’ I I I I Keine Konflikte Sehr performant Enorm robust Im Fehlerfall kann automatisiert umgeschalten werden I Maximale Verfügbarkeit Hans-Jürgen Schönig www.postgresql-support.de Use case: Daten geographisch verteilen I I I Einer der wenigen Use Cases für Multimaster Replikation Kann verwendet werden, wenn die Standorte ‘unabhängig’ sind Beispiel: I I I I In den USA werden amerikanische Daten verändert. In Europa werden lokale Daten verändert. Konflite können so vermieden werden. PostgreSQL bietet Lösungen für asynchrones Multimaster Hans-Jürgen Schönig www.postgresql-support.de Use case: Analytische Abfragen skalieren I I I Oft übersteigt die Datenmenge die Kapazität eines Servers Abfragen sollen auf mehrere Server skaliert werden Verteilte Abfragen in neuen Versionen möglich I I I Queries können über mehrere Server verteilt werden Maximale Parallelität Ideal für enorme Datenmengen Hans-Jürgen Schönig www.postgresql-support.de Was kann erreicht werden? I Kürzlich als Proof-Of-Concept realisiert: I I Analyse von 3 Mrd Zeilen in unter 3 Sekunden Mehr ist möglich I Weitere Features zur Skalierung sind am Weg I Hinweis: Auch NoSQL Workloads sind skalierbar I I No need for Mongo und co. Mehr Infos sind am Stand verfügbar Hans-Jürgen Schönig www.postgresql-support.de Der Klassiker Hans-Jürgen Schönig www.postgresql-support.de Was ist der Standard Fall? I Für viele Kunden ist Master / Slave ideal I I Einfach, robust, schnell Automatisches Failover kann OHNE Linux Pacemaker Erfahrung realisiert werden Hans-Jürgen Schönig www.postgresql-support.de Mehr Infos gefällig? I Besuchen Sie unseren Stand Hans-Jürgen Schönig www.postgresql-support.de Contact us Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig Gröhrmühlgasse 26 A-2700 Wiener Neustadt www.postgresql-support.de Follow us on Twitter: @PostgresSupport Hans-Jürgen Schönig www.postgresql-support.de