Après l’article traitant de la supervision d’un flux de réplication et de son serveur QLIK Replicate, nous allons découvrir les axes d’optimisation d’un flux de réplication.
L’optimisation sous QLIK Replicate est un processus itératif. La majorité des paramètres ne sont pas appliqués à chaud. Dans le cas d’une forte volumétrie ces axes d’optimisation vous permettront de gagner un temps certain.
Axes d’optimisation lors d’un full load
Le nombre maximum de table pouvant être chargé en parallèle est assez faible par défaut (5). C’est le paramètre qu’il faut absolument augmenter pour améliorer considérablement le temps de chargement des données dans la base cible.
Le nombre de commit pendant le full load est lui aussi limité à 10000 lignes par défaut, il peut aussi être fortement augmenté.
Après ces changements, il convient de bien vérifier l’utilisation en mémoire vive de votre serveur Replicate ainsi que l’utilisation de votre base source (processes, CPU, RAM, présence d’une contention) afin de ne pas pénaliser votre production avec ces changements.
Afin d’améliorer considérablement la vitesse de chargement des tables volumineuses sur la cible, le découpage d’une table par paquets de X lignes est aussi possible (chargement partitionné). Il vous suffit de choisir la clé de partitionnement la plus adéquate et les tranches de partition afin de paralléliser ce découpage. Le choix d’une colonne indexée est normalement la meilleure solution.
Une autre méthode est possible, celle d’utiliser les partitions si tel est votre cas.
Axes d’optimisation en mode d’application transactionnel
Dans cet article, je ne m’attarderai pas sur le mode « batch optimized apply » car non adapté pour des bases possédant des contraintes référentielles.
Par défaut les réglages sont optimisés.
Cependant, dans le cas de transactions très volumineuses et afin d’éviter toute lenteur lors d’un déchargement sur disque, il est intéressant d’augmenter les valeurs des paramètres « Total transaction memory size exceeds » et « Transactions duration exceeds » en cohérence avec la mémoire vive restante sur votre serveur Replicate.