Il est parfois pénible d'écrire les scripts Slonik à la main, en particulier lorsqu'on travaille avec des clusters Slony-I™ dont le nombre de nœuds et d'ensemble de réplication augmente régulièrement. Les problèmes suivants ont été identifiés.
Si vous utilisez Slony-I™ pour une réplication « maître/esclave » avec un nœud « maître » et un nœud « esclave », le plus simple est de nommer le nœud « maître » nœud 1 et le nœud « esclave » nœud 2.
Malheureusement, lorsque le nombre de nœud augmente, la correspondance entre les identifiants et les nœuds devient moins évidente, en particulier si vous avez un cluster dont l'origine est déplacée d'un nœud à l'autre de temps en temps.
De la même façon, s'il n'y a qu'un seul ensemble de réplication, il est facile de le nommer « ensemble 1 » mais s'il y a de multiples ensembles, la numérotation des ensembles sera moins intuitive.
On observe que Slonik ne fournit pas la notion d'itération. Il est courant de vouloir créer un ensemble d'entrées SLONIK STORE PATH(7) similaires car, la plupart du temps, les hôtes accèdent à un serveur via le même nom d'hôte ou la même adresse IP.
Les utilisateurs semblent intéressés à tout insérer à l'intérieur de blocs TRY, ce qui n'est pas aussi utile qu'on pourrait le penser.
Certaines évolutions ont résolu une partie de ces problèmes :
Nœuds nommés, ensemble nommés
Ceci est supporté par les commandes SLONIK DEFINE(7) et SLONIK INCLUDE(7) à partir de Slony-I™ 1.1.
L'utilisation de SLONIK INCLUDE(7) pour créer des « fichiers préambule » est une méthode essentielle pour réduire les erreurs. Un fichier préambule est défini une seule fois et vérifié une seule fois. Ces fichiers peuvent être utilisés en tout confiance par les autres scripts slonik.
Boucles et opérateurs de contrôle
Il est inutile de créer un analyseur complet, c'est trop complexe. Il existe de nombreux langages de script que l'on peut utiliser pour construire des scripts Slonik ; il n'est pas intéressant d'en imposer un nouveau.
Il existe plusieurs façons de régler ces problèmes :
Inclure la génération du script slonik dans un script shell
Les tests trouvés dans le répertoire src/ducttape utilisent cette approche.
Les outils altperl utilisent du code Perl pour générer les scripts Slonik.
Vous définissez les configuration du cluster comme un ensemble d'objets Perl ; chaque script altperl utilise les objets Perl pour produire le script slonik adéquate.