Tatsuo Ishii, développeur principal de pgpool-II, vient d'annoncer ce matin, dans la liste dédiée aux développeurs de pgpool-II, que la première version beta de pgpool-II en version 3.0 sortirait ce mois-ci.

Il a donné aussi une liste des fonctionalités que cette version apporte dans le même mail.

Je vous en propose ci-après une traduction libre.

Version 3.0(umiyameboshi) 2010/08/xx:

Ceci est la première version de pgpool-II dans la branche 3.0. Il s'agit d'un grand bond en avant depuis les versions 2.2 ou 2.3.

La grosse nouveauté avec cette nouvelle version est qu'elle est adaptée à la nouvelle version 9.0 de PostgreSQL (NDT: sortie prévue pour l'automne 2010), et en particulier à ses fonctionalités de Streaming Replication/Hot Standby.

Le Streaming Replication peut être utilisé dans le mode "master/slave" de pgpool-II. Ce mode maître/esclave de pgpool-II lui-même a été grandement amélioré:

  • les SELECTs dans des transactions explicites peuvent être balancés
  • dans le protocole étendu, les mesages PARSE/BIND/DESCRIBE sont envoyés au nœud qui exécute le message EXECUTE. Cela réduit la contention au niveau des locks
  • l'auto-start d'une transaction se produit désormais uniquement si c'est nécessaire
  • les tables temporaires peuvent être utilisées sans risques désormais
  • les SELECTs qui appellent des fonctions qui peuvent potentiellement déclencher des écritures ne s'exécutent que sur le maître (master, primary)

D'autres nouvelles fonctionalités sont ajoutées grâce à un recodage du cœur de pgpool-II. Par exemple, dans le mode réplication, les SELECTs qui appellent des fonctions qui peuvent potentiellement déclencher des écritures ne pourront pas être balancés. Nouvelles fonctionalités (NDT: on trouve entre parenthèse le nom du codeur qui a pris en charge la fonctionalité, presque toujours Tatsuo)

  • le Online recovery peut être utilisé même dans le mode maître/esclave en mode streaming replication (Tatsuo)
  • la nouvelle directive "delay_threshold" a été ajoutée pour monitorer le décalage de la réplication dans le mode maître/esclave avec streaming replication. Si ce décalage devient trop important (NDT: supérieur à la valeur de "delay_threshold"), alors les SELECTs ne sont plus balancés (Tatsuo)
  • la commande "show pool_status" montre le décalage de la réplication en mode maître/esclave avec streaming replication (Tatsuo)
  • la nouvelle directive "log_standby_delay" a été ajoutée pour tracer le décalage de la réplication en mode master/slave avec streaming replication (Tatsuo)
  • le numéro de processus du backend a été ajouté aux informations de pcp_proc_info, que le client se connecte ou non au pool (Tatsuo)
  • les nouvelles directives "white_function_list" et "black_function_list" ont été ajoutées pour déclarer les fonctions qui sont suceptibles de provoquer des écritures ou pas (Tatsuo) (NDT: c'est ainsi que pgpool peut distinguer les fonctions qui peuvent provoquer des écritures des autres. Il n'y a donc pas de magie!)
  • dans mode de réplication maître/esclave, les SELECTs sur des tables temporaires ne s'exécutent que sur maître/primaire (Tatsuo)
  • dans le mode de réplication maître/esclave, les requêtes d'écritures se trouvant en dehors d'une transaction explicite ne déclenchent plus de trasactions internes (Tatsuo)
  • dans le mode de réplication maître/esclave, les SELECTs à l'intérieur d'une transaction sont load-balancés (Tatsuo, Kitawaga)
  • dans le mode de réplication maître/esclave, les commandes ne sont pas envoyées à tous les serveurs. Cela permettra d'éviter des locks superflus (Tatsuo, Kitawaga)
  • une nouvelle option de démarrage de pgpool-II permet d'ignorer le fichier de statut (Tatsuo) (NDT: précédement, si ce fichier était présent, dans certains cas particuliers, pgpool ne pouvait plus démarrer, sauf à supprimer ce fichier)
  • support de la nouvelle syntaxe du VACUUM introduite dans la version 9.0 de PostgreSQL (Tatsuo)
  • la nouvelle directive "failover_if_affected_tuples_mismatch" permet de contrôler le comportement de pgpool-II lorsque le nombre d'enregistrements affectés ou renvoyés par une requête de type INSERT, UPDATE ou DELETE diffère (Tatsuo)
  • lorsque le nombre de ces enregistrements diffère sur un INSERT, UPDATE ou DELETE, ce dernier est tracé, pour chacun des serveurs impactés (Tatsuo)
  • l'authentification md5 est supportée dans le mode réplication ainsi que dans le mode maître/esclave (Tatsuo)
  • on peut désormais forcer le passage à la deuxième étape du mode online recovery, même lorsqu'il y a des clients connectés (Tatsuo)
  • s'il y a seulement un seul serveur de disponible et que ce dernier a une avarie (pgpool-II provoque alors un failover), pgpool-II se connectera automatiquement à ce dernier dès qu'il sera à nouveau disponible (Tatsuo)
  • ajout du format des options longues à PCP (Guillaume Lelarge)
  • la nouvelle directive "debug_level" permet de contrôler le niveau des traces de débogage dans les fichiers de log
  • on peut désormais utiliser plusieurs représentations pour les valeurs booléennes dans le fichier pgpool.conf (Kitawaga)

Corrections de bugs

  • Un bug de gestion des timeouts a été corrigé dans les commandes PCP (Tatsuo)
  • le blocage de SSL lorsque de grosses quantités de données sont transférées a été corrigé (Tatsuo)
  • le failover lorsqu'il n'y a plus qu'un seul serveur de disponible a été corrigé (Tatsuo)