Le blog Big Data

PostgreSQL, sa communauté et ses différentes versions

La communauté PostgreSQL est très dynamique. Les développeurs qui contribuent au maintien du code et à la mise en œuvre de nouvelles fonctionnalités sont parmi les plus actifs. A la moindre découverte de bug, il n’est pas rare de voir apparaitre un patch correctif seulement quelques jours après sa découverte.

Mais au fait, qui se cache derrière PostgreSQL ?

Qui développe PostgreSQL ?

Actuellement environ 200 développeurs contribuent au maintien et aux évolutions du moteur à travers le monde. Ces développeurs sont bénévoles ou sont employés par des sociétés qui soutiennent ces développements.

À qui appartient PostgreSQL ?

PostgreSQL n’appartient à personne, il est soumis à la licence BSD (Berkeley Software Distribution Licence).

Le code source est libre d’utilisation sans restriction et peut être utilisé dans d’autres logiciels libres ou propriétaires. Grâce à cette licence BSD, PostgreSQL ne peut pas être racheté et devenir subitement payant.

Qui finance PostgreSQL ?

De grandes entreprises emploient des développeurs dédiés à cette tâche : NTT, Jujitsu, Redhat, Skype, EntrepriseDB, etc.

La numérotation des différentes versions de PostgreSQL obéit à des règles très précises.

Faisons un petit tour du propriétaire :

Les différentes versions de PostgreSQL

Il existe deux grands types de versions :

  • Majeure
  • Mineure (patch correctif).

PostgreSQL a un numéro de version de la forme suivante : X.x.n

  • X indique le niveau des gros changements de fonctionnalité
  • x indique le niveau des nouvelles fonctionnalités
  • n indique le niveau des corrections
  • X.x est une version majeure.
  • X,x,n est une version mineure.

Exemples :

  • 9.2.4 : version mineure – Passage de 9.2.4 à 9.2.6 : migration simple (installation des binaires)
  • 9.1 : version majeure – Passage de 9.1.2 à 9.2.4 : migration plus complexe (pg_upgrade).

Résumé des fonctionnalités disponibles par version : http://www.postgresql.org/about/featurematrix/

Dernières versions disponibles (avril 2014) :

  • PostgreSQL 9.3.4
  • PostgreSQL 9.2.8
  • PostgreSQL 9.1.13
  • PostgreSQL 9.0.17
  • PostgreSQL 8.4.21

Rythme de sortie des versions :

  • 1 version majeure tous les 12 mois.
  • 1 version mineure tous les 3 mois (au minimum, plus rapproché si on découvre un bug important).

Comment migrer vos clusters ?

Migration de version mineure

(Par exemple : de version 9.2.7 à 9.2.8) Il suffit d’arrêter le cluster, d’installer le nouveau binaire du moteur PostgreSQL et de relancer le cluster. Si tout va bien l’interruption de service est minime (une dizaine de minutes au plus).
Dans un contexte de haute disponibilité, on peut utiliser des outils comme pgpool II couplés à un système de réplication (hot standby, streaming replication) ce qui permettra de ne pas arrêter vos clusters en migrant en premier les clusters slaves puis en dernier le master.

Migration de version majeure

(Par exemple : de version 9.2.7 à 9.3.4). Il faudra dans ce cas prévoir obligatoirement une indisponibilité de vos clusters. La durée de l’arrêt dépend de la volumétrie de vos données dans les bases.

Vous disposez de 2 techniques principales :

  • Par export/import : il faut exporter vos données (pg_dump ou pg_dumpall), créer un cluster avec la nouvelle version du moteur PostgreSQL et enfin importer vos données dans ce nouveau cluster. Cette technique peut être très longue en cas de forte volumétrie.
  • Avec pg_upgrade : cet outil inclus dans le moteur PostgreSQL permet de mettre à jour l’entête des fichiers de données avec la nouvelle version. Ce qui permet de se passer de l’étape d’export/import. Cette technique est beaucoup plus rapide en cas de forte volumétrie mais nécessite le double de l’espace occupé par votre cluster (PostgreSQL va faire une copie de tous les fichiers et les supprimer à l’issue de la migration).

Pourquoi migrer ?

Les différentes versions majeures de PostgreSQL sont maintenues un certain temps par la communauté. Par exemple, la branche 8.4 ne sera plus maintenue à partir de juillet 2014. Il faut savoir que si vous utilisez ce moteur en production et qu’un bug est découvert, il ne sera pas corrigé pour cette version.

De plus les dernières versions offrent toujours plus de nouvelles fonctionnalités très intéressantes (réplication en cascades, vues matérialisées, nouveaux types de données, etc.) et sont plus performantes (optimisation du planificateurs, des tâches de maintenances, etc.).

Sachez qu’Ingensi peut vous accompagner dans vos tâches de migration et vous encourage à maintenir vos clusters avec les versions les plus récentes de PostgreSQL.

Rendez-vous sur notre site : http://www.ingensi.com/ pour plus d’informations.

Ingensi

Ingensi

      Laisser un commentaire