PostgreSQL et la Haute Disponibilité



Documents pareils
Haute disponibilité avec PostgreSQL

La replication dans PostgreSQL

Haute-disponibilité et bases de données

Sommaire. Origine du projet Équipe principale, contributeurs et sponsors Principes fondateurs Fonctionnalités Versions La communauté Outils tiers

Tungsten: une implémentation du futur clustering de PostgreSQL

Sommaire. La haute-disponibilité. L'offre OpenSource. Les systèmes tiers. MySQL

FORMATION PostgreSQL Réplication / Haute Disponibilité

Slony1 2.1 Londiste 3

Présentation du projet

PostgreSQL, le cœur d un système critique

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Windows Server 2012 R2 Failover de serveurs DHCP

Réplication des données

DHCP Failover for Windows Server 2012 By COCHET Anthony

WebSphere MQ & Haute Disponibilité

Sybase High Avalaibility

1200 Incendies par an dans des «Data Center»!! Et vous. Moi j ai Data Guard 10g!!!!

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

«clustering» et «load balancing» avec Zope et ZEO

PostgreSQL. Formations. Catalogue Calendrier... 8

PostgreSQL. Formations. SQL avancé Calendrier... 18

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

PostgreSQL. Formations. Calendrier... 14

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

Solution Haute Disponibilité pour Linux

MOBILITE. Datasheet version 3.0

Cluster High Availability. Holger Hennig, HA-Cluster Specialist

Continuité d activité : le choix des armes

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Le modèle client-serveur

Introduction. René J. Chevance

Oracle Maximum Availability Architecture

SQL Server Installation Center et SQL Server Management Studio

La Continuité d Activité

CA XOsoft. Suite logiciels. WANSync Solution de réplication des données en LAN ou WAN.

arcserve r16.5 Protection des données hybride

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Easy as NAS Supplément Entreprises. Guide des solutions

La surveillance réseau des Clouds privés

L I V R E B L A N C P r o t ég e r l e s a p p l i c a t i o n s m ét i e r s c r i t i q u e s M a i n f r a m e, un b e s o i n c r u c i a l

Veeam Backup & Replication v6

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Un concept multi-centre de données traditionnel basé sur le DNS

Unitt Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données

La continuité de service

CLOUD CP3S SOLUTION D INFRASTRUCTURE SOUMIS À LA LÉGISLATION FRANÇAISE. La virtualisation au service de l entreprise. Évolutivité. Puissance.

ITIL Gestion de la continuité des services informatiques

Implémentation des SGBD

TARDITI Richard Mise en place d une Haute Disponibilité

Présentation du module Base de données spatio-temporelles

Redondance de service

Systèmes de fichiers répartis

«Commande» se rapporte à un bon de commande ou à une commande créée sur un site Internet Interoute.

Haute Disponibilité de l environnement WMQ Outils & Méthodes

Système de stockage IBM XIV Storage System Description technique

LIVRE BLANC PRODUIT. Evidian SafeKit. Logiciel de haute disponibilité pour le clustering d application

Architectures d implémentation de Click&DECiDE NSI

NEXTDB Implémentation d un SGBD Open Source

Lettre d annonce ZP d IBM Europe, Moyen-Orient et Afrique,, datée du 20 octobre 2009

Tutorial sur SQL Server 2000

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Systèmes et algorithmes répartis

Disponibilité 24-7/365

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Notes de cours : bases de données distribuées et repliquées

Bases de données Cours 1 : Généralités sur les bases de données

COMPTE-RENDU PGDAY PARIS. Journée du 21 avril Oxalide 2015 COMPTE-RENDU pgday

Les journées SQL Server 2013

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

Concours interne d ingénieur des systèmes d information et de communication. «Session 2010» Meilleure copie "étude de cas architecture et systèmes"

Consolidation de stockage

Dossier Solution - Virtualisation CA arcserve Unified Data Protection

//////////////////////////////////////////////////////////////////// Administration bases de données

Sécurisation et résilience des services DNS/DHCP Gestion de l adressage IP automatisée

SQL Server 2008 solutions de sauvegarde et de continuité

Cours Bases de données

Architecture et Extensions d ArcGIS Server

DOSSIER DE PRESSE. Protégez votre activité, Sauvegardez vos données

Consolidation. Grid Infrastructure avec la 11gR2

Les Géodatabases en 9.2

Bacula R - The Network Backup Solution

VMware vsphere 5 au sein du Datacenter Complément vidéo : La configuration et la sécurisation de l'esx

Le data center moderne virtualisé

Systèmes de gestion de code source

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Technologie data distribution Cas d usage.

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

Configuration matériel. Tâche 2 : Installation proprement dite de l application sur un serveur de test virtualisé sous VmWare Workstation.

Logiciel HP StorageWorks Enterprise Virtual Array (EVA) Fiche technique

PLAN. Industrialisateur Open Source LANS DE SECOURS INFORMATIQUES PRINCIPES GENERAUX ETAT DE L ART SELON BV ASSOCIATES

Installation d un groupe de disponibilité avec SQL Server 2012 AlwaysOn (CTP3) qsjdlkqjs

Introduction aux bases de données

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

CONSULTATION : (MAPA) MAT_INFO_2013_03 Marché à procédure adaptée (MAPA) MAT_INFO_2013_03

Transcription:

Auteur : Jean-Paul Argudo <jean-paul.argudo@dalibo.com> Licence : Creative Commons, BY-NC-SA Date : 2 avril 2009

Table des matières 1 Sommaire 5 2 Haute disponibilité? 6 3 Seven Nine 7 4 Matériel 8 5 Technologies de réplication 9 6 Réplication Asynchrone Asymétrique 10 7 Réplication Asynchrone Symétrique 11 8 Réplication Synchrone Asymétrique 12 9 Réplication Synchrone Symétrique 13 10 Diffusion des modifications 14 11 Projets PostgreSQL 15 12 Warm Stand-by 16 13 Hot Stand-by 18 14 Projets autour de PostgreSQL 19 15 Slony : Identité 20 16 Slony : Fonctionnalités 21 17 Slony : Technique 22 18 Slony : Points forts 23 dalibo.com 2 / 53 dalibo.org

19 Slony : Limites 24 20 Slony : Utilisations 25 21 Bucardo : Identité 26 22 Bucardo : Fonctionnalités 27 23 Bucardo : Technique 28 24 Bucardo : Points forts 29 25 Bucardo : Limites 30 26 Bucardo : Utilisations 31 27 Londiste : Identité 32 28 Londiste : Fonctionalités 33 29 Londiste : Technique 34 30 Londiste : Points forts 35 31 Londiste : Limites 36 32 Londiste : Utilisations 37 33 Postgres-R : Identité 38 34 Postgres-R : Fonctionalités 39 35 Postgres-R : Technique 40 36 Postgres-R : Points forts 41 37 Postgres-R : Limites 42 38 Postgres-R : Utilisations 43 39 pgpool-ii : Identité 44 dalibo.com 3 / 53 dalibo.org

40 pgpool-ii : Fonctionalités 45 41 pgpool-ii : Technique 46 42 pgpool-ii : Points forts 47 43 pgpool-ii : Limites 48 44 pgpool-ii : Utilisations 49 45 D autres projets... 50 46 Sondage 51 47 Conclusion 52 48 Questions 53 dalibo.com 4 / 53 dalibo.org

Sommaire Généralités sur la haute disponibilité et la réplication Dans cette présentation, nous reviendrons rapidement sur la qualification des solutions de haute disponibilité, et la classification des solutions de réplication. Présentation des projets de réplication autour de PostgreSQL Nous détaillerons ensuite les projets de réplication pour PostgreSQL les plus en vue. dalibo.com 5 / 53 dalibo.org

Haute disponibilité? Quel est mon besoin? Seul le réel besoin permet de trouver la solution adéquate. Quel est mon budget? Le budget est un élément important dans la mise en place d une solution de haute disponibilité. La plupart du temps, il faudra multiplier le nombre de machines, ou a minima le nombre de disques durs. Dans certains cas, on en vient à redonder aussi la mémoire, les processeurs, etc. De nombreuses solutions existent en la matière. Cependant, cette débauche de moyens a toujours un coût. Quelles compétences? Le coût de la compétence associée à l installation, et surtout, à la maintenance d un cluster, fut-il installé pour PostgreSQL ou non, est toujours important. Le coût du maintient de la compétence pour la gestion d un cluster ne doit pas être pris à la légère. Cependant, l offre de formation existe et est aujourd hui complète. On trouve aussi nombre de sociétés prêtes à supporter la maintenance d un cluster PostgreSQL. L entreprise a donc le choix d externaliser ou non cette compétence. Quand? La donnée temporelle est importante. Il convient en effet de savoir à partir de quel moment on veut transformer son service en un service dont on attend une haute disponibilité. Généralement, plus le service est placé sous haute disponibilité tôt dans l élaboration du projet, plus les coûts engendrés sont importants. dalibo.com 6 / 53 dalibo.org

Seven Nine Équivalences 99,(9)* et temps d indisponibilité : 99% désigne le fait que le service est indisponible moins de 3,65 jours par an 99,9%, moins de 8,75 heures par an 99,99%, moins de 52 minutes par an 99,999%, moins de 5,2 minutes par an 99,9999%, moins de 54,8 secondes par an 99,99999%, moins de 3,1 secondes par an dalibo.com 7 / 53 dalibo.org

Matériel Pas le but de cette présentation En effet, cette présentation est destinée à présenter les solutions de réplication entrant dans la composition d un cluster PostgreSQL à haute disponibilité. À prendre évidemment en compte... De nombreuses techniques matérielles viennent en complément essentiel des technologies de réplication utilisées dans la haute disponibilité. Leur utilisation est généralement obligatoire, du RAID en passant par les SAN et autres techniques pour dedonder l alimentation, la mémoire, les processeurs, etc. dalibo.com 8 / 53 dalibo.org

Technologies de réplication Au choix : Propriétaires ou Libres Dans tous les cas, le support professionnel existe! dalibo.com 9 / 53 dalibo.org

Réplication Asynchrone Asymétrique Écritures sur le maître Dans la réplication asymétrique, seul le maître accepte des écritures, et l (es) esclave(s) ne sont accessibles qu en lecture. Mise en attente Dans la réplication asynchrone, il existe un processus extérieur au SGBD qui gère la réplication des changements. Réplication des changements sur l esclave Les seules écritures acceptées par l (les) esclave(s) sont la réplication des changements effectués par les utilisateurs sur le maître. La mise à jour de la(des) table(s) répliquée(s) est différée (asynchrone). Elle est réalisée par un programmateur de tâches, possédant une horloge. Des points de synchronisation sont utilisés pour propager les changements. dalibo.com 10 / 53 dalibo.org

Réplication Asynchrone Symétrique Écritures concurrentielles, sur deux maîtres Dans la réplication symétrique, tous les maîtres sont accessibles aux utilisateurs, aussi bien en lecture, qu en écriture. Mises en attente Dans la réplication asynchrone, il existe un processus extérieur au SGBD qui gère la réplication des changements. ACID?! Deux maîtres répliquent les données de l un sur l autre, via un programmateur (voire deux programmateurs). Ce mode de réplication ne respecte généralement pas les propriétés ACID, car si une copie échoue alors que la transaction a déjà été validée, on peut alors arriver dans une situation où les données sont incohérentes. dalibo.com 11 / 53 dalibo.org

Réplication Synchrone Asymétrique Écriture sur le maître Dans la réplication asymétrique, seul le maître accepte des écritures, et l (es) esclave(s) ne sont accessibles qu en lecture. Recopie instantanée sur l esclave Dans la réplication synchrone, il n y a pas de processus extérieur qui propage les changements. Dans ce cas, on utilise un mécanisme dit de Two Phase Commit ou Commit en deux phases, qui assure qu une transaction est comittée sur tous les nœuds dans la même transaction. Les propriétés ACID sont dans ce cas respectées. La copie est instantanément mise à jour à chaque modification de la table maître. Si la copie échoue c est toute la transaction qui est annulée, et elle n est appliquée sur aucun des nœuds. dalibo.com 12 / 53 dalibo.org

Réplication Synchrone Symétrique Écritures concurrentielles sur deux maîtres Dans la réplication symétrique, tous les maîtres sont accessibles aux utilisateurs, aussi bien en lecture, qu en écriture. Gestion des verrous et de la concurrence Dans la réplication synchrone, il n y a pas de processus extérieur qui propage les changements. Dans ce cas, on utilise un mécanisme dit de Two Phase Commit ou Commit en deux phases, qui assure qu une transaction est comittée sur tous les nœuds dans la même transaction. Les propriétés ACID sont dans ce cas respectées. Dans le cas particulier de la réplication synchrone symétrique, il faut en plus gérer les éventuels conflits qui peuvent survenir quand deux transactions concurrentes opèrent sur le même ensemble de tuples. On résout ces cars particuliers avec des algorithmes plus ou moins complexes. Les deux tables peuvent être modifiées, et les mise à jour sont propagées directement dans l autre table. Il est à noter que la réplication fait partie de la transaction, ce qui ne ralentit que très peu le système. dalibo.com 13 / 53 dalibo.org

Diffusion des modifications On trouve deux types de diffusion des mises à jour : Diffusion du résultat de l opération : soit le résultat du SQL Permet de ne pas refaire l opération sur la copie, mais nécessite une gestion de l ordonnancement des mises à jour afin que celles-ci soient identiques sur tous les sites. Diffusion de l opération de mise à jour : soit le SQL lui-même Plus flexible, notamment dans le cas d opérations cumulatives. Pose la problématique des opérations dites non déterministes. Par exemple, le résultat de CURRENT_TIMESTAMP ou de random() peut différer d un nœud à l autre. dalibo.com 14 / 53 dalibo.org

Projets PostgreSQL Deux techniques de réplication existent pour PostgreSQL : Warm Stand-by (aka Log Shipping) Hot Stand-by Cependant, seule la première est stable, la seconde étant toujours en cours de développement. dalibo.com 15 / 53 dalibo.org

Warm Stand-by Intégré à PostgreSQL depuis plusieurs années Le Warm Stand-by existe depuis la version 8.2, sortie le 5 décembre 2006. La robustesse de ce mécanisme simple est à toute épreuve. Permet d avoir une réplique d une cluster PostgreSQL sur un serveur secondaire Les journaux de transactions (aka WAL, pour Write Ahead Log) sont immédiatement envoyés au serveur secondaire après leur écriture. Le serveur secondaire est dans un mode spécial d attente, et lorsqu un journal de transactions est reçu, il est automatiquement appliqué au réplica. Cette technique ne permet de répliquer que l ensemble du cluster PostgreSQL, c est à dire, l ensemble des bases de données qu il contient. On ne peut pas par exemple ne répliquer qu une base parmi celles que contient le cluster. Cette limitation est liée au fait que les journaux de transactions de PostgreSQL (aka WALs) tracent toutes les transactions du cluster, quelle que soit la base de données. Le réplica est identique au serveur primaire, au WAL près Étant donné que le serveur distant n applique que les WAL qu il reçoit, il y a toujours un risque de pertes de données en cas de panne majeure sur le serveur primaire. On peut cependant moduler le risque de deux façons : Sauf en cas d avarie très grave sur le serveur primaire, le WAL sur ce dernier peut généralement être récupéré et appliqué sur le serveur secondaire On peut réduire la fenêtre temporelle de la réplication en modifiant la valeur de la clé de configuration archive_timeout. Au delà des n secondes déclarées dans cette variable de configuration, le serveur change de WAL, provoquant l archivage du précédent. On peut par exemple envisager unarchive_timeout à30 secondes, et ainsi obtenir une réplication à 30 secondes près Un outil pratique : pg_standby L outil pg_standby de Simon Riggs (contrib de PostgreSQL 8.3) possède plusieurs options en ligne de commande : pg_standby [OPTION]... [ARCHIVELOCATION] [NEXTWALFILE] [XLOGFILEPATH] ARCHIVELOCATION correspond au répertoire de stockage des journaux de transaction archivés. NEXTWALFILE est le nom du prochain journal à récupérer. XLOGFILEPATH est l emplacement des journaux de transaction. Options les plus intéressantes : -d pour envoyer des informations de débogage sur stderr. -s delai, délai entre deux vérifications. -t fichier_trigger, pour arrêter la vérification. -w delai_max, délai maximum avant l abandon de la récupération. Exemple : dalibo.com 16 / 53 dalibo.org

restore_command = pg_standby -d -s 2 -t /tmp/pgsql.trigger.5432 \ /var/pg_xlog_archives %f %p 2>> standby.log dalibo.com 17 / 53 dalibo.org

Hot Stand-by Évolution du Warm Stand-by Le patch Hot Stand-by a nécessité environ 5 mois de travail intense de son auteur, Simon Riggs, et environ 3 semaines de relecture à un hacker émérite de PostgreSQL, Heikki Linakangas. Il s agit d un patch de plusieurs milliers de lignes de C. Basé sur le même mécanisme L évolution : le serveur secondaire est ouvert en lecture seule Cette évolution majeure de PostgreSQL devait initialement être intégrée à la toute prochaine version 8.4. Cependant, les relectures des patches de Simon Riggs (principal codeur de Warm et Hot Stand- By) par Heikki Linakangas (autre codeur émérite du projet!), ont abouti à la conclusion qu il était prématuré d inclure cette fonctionnalité dans PostgreSQL 8.4 car des tests complémentaires, plus poussés devaient être réalisés, d une part. D autre part, il existe de nombreux axes d améliorations possibles au patch de Simon. Cette nouvelle fonctionnalité de PostgreSQL ne remplacera pas des projets plus complexes de réplication. Elle n en a pas non plus la vocation. L évolution naturelle du Hot Stand-by sera probablement d alimenter le serveur secondaire directement avec les transactions du serveur primaire, en ne passant plus par les journaux de transaction. Une fois cette dernière évolution effectuée, les utilisateurs d outils de réplication tiers se poseront probablement la question sur la nécessité pour eux de garder leur installation actuelle, dans la mesure où PostgreSQL possèdera de manière native une réplication maître / esclave intéressante. dalibo.com 18 / 53 dalibo.org

Projets autour de PostgreSQL Slony Bucardo Londiste Postgres-R pgpool-ii dalibo.com 19 / 53 dalibo.org

Slony : Identité Projet libre (BSD) Asynchrone / Asymétrique Réplication des résultats Site web : http ://slony.info/ dalibo.com 20 / 53 dalibo.org

Slony : Fonctionnalités Failover / Failback Switchover / Switchback Standalone dalibo.com 21 / 53 dalibo.org

Slony : Technique Réplication basée sur des triggers Démons externes, écrits en C Le maître est provider Le(s) esclave(s) est(sont) suscriber(s) dalibo.com 22 / 53 dalibo.org

Slony : Points forts Basé sur un(des) set(s) de réplication et non sur un(des) schéma(s) Indépendance des versions de PostgreSQL Technique de propagation des DDL Robustesse dalibo.com 23 / 53 dalibo.org

Slony : Limites À proscrire pour la réplication de bases itinérantes Le réseau doit être fiable : peu de lag, pas ou peu de coupures Monitoring délicat dalibo.com 24 / 53 dalibo.org

Slony : Utilisations Base de données de secours Alimentation des bases de pré-production, de recette et de tests Infocentre (many to one) Bases spécialisées (recherche plein texte, traitements lourds, etc) dalibo.com 25 / 53 dalibo.org

Bucardo : Identité Projet libre (BSD) Asynchrone / Symétrique Réplication des résultats (dits deltas) Site web : http ://bucardo.org/ dalibo.com 26 / 53 dalibo.org

Bucardo : Fonctionnalités Failover? dalibo.com 27 / 53 dalibo.org

Bucardo : Technique Réplication basée sur des triggers Démons externes, écrits en Perl Maître / Maître ou Maître / Esclave dalibo.com 28 / 53 dalibo.org

Bucardo : Points forts Basé sur un(des) set(s) de réplication et non sur un(des) schéma(s) Simplicité d utilisation Résolution standard des conflits source : la base de données d origine gagne toujours target : la base de destination gagne toujours random : l une des deux bases est choisie au hasard comme étant la gagnante latest : le plus récemment changé gagne abort : la réplication est arrêtée skip : aucune décision ni action n est prise dalibo.com 29 / 53 dalibo.org

Bucardo : Limites Aucune technique de propagation des DDL Limité à deux nœuds Le réseau doit être fiable : peu de lag, pas ou peu de coupures Version de PostgreSQL > 8.2 Sous Unix uniquement Cas particulier des séquences Un seul développeur sur le projet (Greg Sabino Mulane) dalibo.com 30 / 53 dalibo.org

Bucardo : Utilisations Cluster maître/maître simple Base de données de secours Bases spécialisées (recherche plein texte, traitements lourds, etc) dalibo.com 31 / 53 dalibo.org

Londiste : Identité Projet libre (BSD) Asynchrone / Asymétrique Réplication des résultats Site web : https ://developer.skype.com/skypegarage/dbprojects/skytools dalibo.com 32 / 53 dalibo.org

Londiste : Fonctionalités Failover? Pour les tables : repair et compare dalibo.com 33 / 53 dalibo.org

Londiste : Technique Réplication basée sur des triggers Démons externes, écrits en Python Utilise un autre Skytool : PgQ Maître / Esclave(s) dalibo.com 34 / 53 dalibo.org

Londiste : Points forts PgQ est robuste, fiable et flexible Pas de sets de réplication, mais des tables appartenant à différentes queues On peut ainsi avoir des tables dans le serveur maître qui alimentent la queue principale à laquelle les différents esclaves auront souscrit, mais aussi d autres queues qui vont alimenter certaines autres tables du maître. Cela rend donc possible de réplications croisées. Indépendance des versions de PostgreSQL Robustesse dalibo.com 35 / 53 dalibo.org

Londiste : Limites Technique de propagation des DDL basique, et surtout, unitaire Pas de sets de réplication, mais les queues (PgQ) peuvent gérer cela Très peu de fonctionnalités. Skytools 3 devrait corriger des écarts avec Slony Notamment au niveau de la propagation des DDL, on pourra par exemple exécuter le script suivant : londiste.py conf.ini execute script.sql dalibo.com 36 / 53 dalibo.org

Londiste : Utilisations Base de données de secours Alimentation des bases de pré-production, de recette et de tests Infocentre (many to one) Bases spécialisées (recherche plein texte, traitements lourds, etc) dalibo.com 37 / 53 dalibo.org

Postgres-R : Identité Projet libre (BSD) Synchrone / Symétrique Réplication des résultats Site web : http ://www.postgres-r.org/ dalibo.com 38 / 53 dalibo.org

Postgres-R : Fonctionalités Resynchronisation automatique d un nœud désynchronisé La resynchronisation d un nœud qui a subi une désynchronisation suite à so, arrêt volontaire (ou non), peut être partielle dans la plupart des cas : ne seront rejoués que les évènements qui doivent l être dalibo.com 39 / 53 dalibo.org

Postgres-R : Technique Basé sur le Group Communication System (aka GCS) La théorie sur le Group Communication System est très aboutie (travaux de B. Kemme en particulier). Cependant son implémentation est relativement complexe. Est un gros patch pour PostgreSQL L auteur (Markus Wanner) explique lui-même que pour des raisons de performances, et parce qu un système de réplication multi-maîtres est une chose complexe, Postgres-R est en fait une version patchée de PostgreSQL. dalibo.com 40 / 53 dalibo.org

Postgres-R : Points forts Intégration au cœur même de PostgreSQL L intégration au sein même du code de PostgreSQL est garant de performances optimales. Cependant, c est aussi à double tranchant, comme cela sera exposé plus tard. Installation aisée Il suffit de compiler la version Postgres-R avec l option de compilation--enable-replication pour obtenir un PostgreSQL avec la réplication. La configuration des nœuds ensuite n est pas plus compliquée qu avec Londiste ou Slony. En théorie, le cluster actif-actif est limité à environ 20 nœuds Les travaux de Betina Kemme montrent qu au delà de 20 nœuds, le temps passé par les nœuds à discuter au sujet du fonctionnement même du cluster devient beaucoup plus grand que le temps passé à s échanger des données. Dès lors, une saturation du réseau entre les nœuds est constatée. En pratique, la limite acceptable est à environ 12 nœuds La limite pratique peut-être augmentée à 16 nœuds, dans le cas où le paramètre fsync est à off (Sameh Elnikety, Steven Dropsho, et Willy Zwaenepoel. Tashkent+ : Memoryaware load balancing and update filtering in replicated databases. EuroSys 2007 : Proceedings of the 2nd European Conference on Computer Systems, pages 399--412, 2007) dalibo.com 41 / 53 dalibo.org

Postgres-R : Limites Un seul développeur à ce jour (Markus Wanner) Postgres-R est un patch de PostgreSQL Cela rend donc compliqué la maintenance du code pour son auteur, qui doit l adapter à chaque version majeure de PostgreSQL. Surtout : Postgres-R est encore un projet de recherche, partiellement abouti. C est rédhibitoire pour les professionnels, qui privilégient à juste titre la robustesse et la stabilité des logiciels. Cependant, ce projet est très prometteur et il convient de le surveiller de très près. dalibo.com 42 / 53 dalibo.org

Postgres-R : Utilisations Limitées actuellement, du fait du statut actuel du projet Publication en Janvier 2009 d un document de spécifications Ce document (téléchargeable sur http ://www.postgres-r.org/downloads/concept.pdf) semble poser toutes les bases de la spécification de Postgres-R. Mais l auteur l avoue lui-même en ces termes : Note that the current prototype implementation doesn t cover all aspects mentioned. Ce qui, dans une traduction libre veut dire Notez que l implémentation dans le prototype actuel ne couvre pas tous les aspects mentionnés (dans ce document). Il est clair en tout cas que Markus a fait de nombreux appels du pied à la communauté PostgreSQL. Mais son projet ne semble pas attirer les foules. dalibo.com 43 / 53 dalibo.org

pgpool-ii : Identité Projet libre (BSD) Synchrone / Symétrique Réplication des requêtes SQL Site web : http ://pgpool.projects.postgresql.org/ dalibo.com 44 / 53 dalibo.org

pgpool-ii : Fonctionalités Failover avec détection automatique d un nœud déficient Le cas échéant, le nœud est désactivé dans la réplication. La technique du Online Recovery de pgpool Failback : Online Recovery dalibo.com 45 / 53 dalibo.org

pgpool-ii : Technique pgpool est à l origine un pooler de connexions A sa configuration propre Transparent pour les applications dalibo.com 46 / 53 dalibo.org

pgpool-ii : Points forts Léger et très robuste Projet Installation et prise en main très rapide Réplication de requêtes : donc, même le DDL dalibo.com 47 / 53 dalibo.org

pgpool-ii : Limites pgpool est un SPOF! Il faudra donc veiller à ce qu un autre service pgpool-ii existe sur une autre machine et à mettre en place un système de bascule automatique. Cela est généralement fait avec des infrastructures redondantes basées sur heartbeat, lvm, etc. Réplication basée sur la réplication des requêtes SQL Il faut donc absolument veiller à ce que les bases de données ne puissent être accédées que via pgpool-ii! En effet, il existe toujours un risque qu une base soit modifiée en direct... Ce qui la désynchroniserait des autres. Documentation d origine en Japonnais, dont les traductions sont parfois curieuses Authentification en mode réplication : pas de md5 Effet trousse à outils Dans la communauté PostgreSQL, ce type de critique est récurrent à l encontre de pgpool : beaucoup lui reprochent de tout faire un peu. pgpool est en effet à la fois : un pooler de connexions, mais aussi capable de faire de la réplication et de la requête parallèle. Ces critiques sont cependant peu fondées, les sites utilisant pgpool en production sont très nombreux! Ceux qui ne s intéresseront qu au seul mode de pooler de connexions pourront s intéresser à l excellent PgBouncer de Skype. dalibo.com 48 / 53 dalibo.org

pgpool-ii : Utilisations Base de données de secours Load-Balancing dalibo.com 49 / 53 dalibo.org

D autres projets... Il existe bien d autres projets! PGCluster : moribond Mammoth Replicator / Command Prompt : libre + support commercial, moribond Cybercluster / Cybertek : libre + support commercial, actif Tungsten(ex Sequoia)/Continuent : libre + support commercial, très actif dalibo.com 50 / 53 dalibo.org

Sondage Quel est votre outil de réplication favori pour PostgreSQL? Réponse Nombre de votes Pourcentage pgpool-ii 7 11.290% Bucardo 1 1.613% Slony-I 35 56.452% Londiste 6 9.677% Continuent 2 3.226% pgcluster 2 3.226% DRBD ou Sun Cluster 2 3.226% Autres 7 11.290% Total 62 Les résultats ci-dessous sont consultables sur le site du projet PostgreSQL sur la page suivante : http ://www.postgresql.org/community/survey.61 dalibo.com 51 / 53 dalibo.org

Conclusion Quel que soit le projet choisi pour répliquer les données, il ne faut pas oublier : de bien définir son besoin d identifier tous les SPOF de redonder chaque service jugé critique de monitorer son cluster de se préparer à un éventuel Failover dalibo.com 52 / 53 dalibo.org

Questions Jean-Paul Argudo <jean-paul.argudo@dalibo.com> Gérant de Dalibo SARL, L Expertise PostgreSQL Co-fondateur de PostgreSQL France Trésorier de PostgreSQL Europe Rendez-vous au stand PostgreSQLFr! Sur le village des associations, où de nombreux contributeurs PostgreSQL pourront répondre à vos questions. et au pgday 2009 : http ://2009.pgday.eu/ 2 journées entièrement consacrées à PostgreSQL, avec la participation de core-hackers de PostgreSQL, ainsi que l ensemble de la communauté Européenne, dont c est le 3ème pgday Européen, qui vient, cette année se greffer au pgday Français, après le pgday Italien en 2008, et le pgday probablement Allemand en 2010! dalibo.com 53 / 53 dalibo.org