3. Les démons Slon

Les programmes qui effectuent concrètement la réplication Slony-I™ sont les démons slon.

Vous devez lancer une instance slon(1) sur chaque nœud du cluster Slony-I™, que ce nœud soit considéré comme un maître ou comme un esclave. Sous Windows™, l'exécution en tant que service est légèrement différente. Un service slon est installé et un fichier de configuration est enregistré pour chaque nœud qui devra être servi par la machine. Le service principal gère alors lui-même les demons slons individuels. Puisque qu'une commande MOVE SET ou FAILOVER peut modifier le rôle des nœuds, slon doit fonctionner pour tous les nœuds. Il n'est pas essentiel que ces démons soient hébergé sur un hôte particulier mais quelques principes méritent d'être considérés :

[Avertissement]

Avertissement

Ne lancez pas un démon slon devant gérer un nœud à travers un lien WAN, si possible. Tout problème avec ce lien peut tuer les connexions et ainsi laisser des connexions « zombies » sur les nœuds qui subsisteront (de manière générale) pendant environ deux heures. Ceci empêche le démarrage d'un autre slon, comme cela est décrit dans la FAQ au sein de la section sur les connexions slon multiples.

Historiquement, les processus slon ont été plutôt fragiles, défaillant dès qu'ils rencontraient une erreur significative. Ce comportement impliquait l'utilisation de « chiens de garde » qui surveillent les démons afin de s'assurer que, si un slon s'arrête, il soit remplacé par un autre.

Il existe deux scripts de « chiens de garde » actuellement disponible dans l'arborescence des sources de Slony-I™ :

Le script slon_watchdog2 est en général la solution préférable. Il existe un cas où elle n'est pas souhaitable : lorsqu'on abonne un très gros ensemble qui nécessite plusieurs heures de COPY SET (le principal événement que provoque la requête SUBSCRIBE SET). Le problème qui surgit dans ce cas est que le chien de garde constate qu'aucun événement SYNC n'a été produit depuis deux heures, et déduit que quelque chose est cassé, ce qui implique un redémarrage du démon slon, ce qui relance du coup le COPY SET. Récemment, le script a été modifié pour détecter les COPY SET en cours d'exécution.

Dans Slony-I™ version 1.2, la structure du démon slon a été révisée de manière importante pour le rendre moins fragile. Le processus principal ne s'arrête que si vous envoyez expressément un signal lui demandant de s'arrêter.

Une nouvelle approche est possible dans le script Section 21.4, « launch_clusters.sh » en utilisant les fichiers de configuration slon et peut être invoqué comme un service dans le processus de démarrage du système.