Introduction
Cet article présente une nouveauté importante avec Replication Server 12.1 sur l’allocation des partitions. L’utilisateur peut désormais en effet spécifier une partition de prédilection (ou suggestion) au sein de Replication Server pour une file d’attente dédiée à une connexion vers une base répliquée ou une route.
Allocation des segments de file d’attente
En sélectionnant l’emplacement de la file d’attente permanente, une meilleure répartition de charge et une amélioration des opérations de distributions peuvent être observées.
Replication Server stocke les messages destinés à d’autres sites sur des partitions. Sur celles-ci, il alloue de l’espace pour les files d’attente permanente, par blocs de 1 Mo appelés segments. Chaque file d’attente permanente contient des messages à livrer à un autre Replication Server ou à un serveur de données. Les files conservent les données jusqu’à leur envoi à leur destinataire.
Par défaut, Replication Server assigne des segments de file d’attente à la première partition de la liste. Avec cette méthode, lorsque la première partition est pleine, elle passe en fin de liste et le segment de file d’attente suivant est alloué à la partition désormais en première place. Cette allocation par roulement est automatique et l’utilisateur ne peut pas la contrôler.
Mécanisme d’allocation par défaut :
Sélection des allocations de disque
La commande alter connection
permet depuis Replication Server 12.1 de
définir une suggestion d’allocation de segments sur les partitions pour
une file d’attente dédiée à une connexion vers une base répliquée ou une
route.
alter connection to dataserver.database
set disk_affinity to ['partition_logical_name' | 'off']
Chaque directive d’allocation est appelée 'suggestion' car Replication Server peut remplacer l’allocation pour une connexion si par exemple la partition allouée est pleine ou si elle a été supprimée. Si Replication Server n’utilise pas la suggestion, il alloue des segments en appliquant le mécanisme par défaut.
Replication Server vérifie si il existe une suggestion chaque fois qu’il
alloue un nouveau segment pour une file d’attente. Chaque suggestion est
stockée dans la table système rs_diskaffinity
de la base RSSD. Une partition
peut avoir plusieurs suggestions, mais une file d’attente ne peut avoir
qu’une suggestion.
L’efficactité du processus d’allocation de disque pour améliorer les performances dépend de l’architecture et d’autres caractéristiques du site.
Exemple :
Il est possible d’allouer des partitions de disque différentes à des files permanentes différentes. Supposons que nous soyons menés à créer deux partitions de taille différentes (2Gb et 1Gb) et qui seront chacune associée à une connexion distincte.
shell> cd /dba/sybase/CGC_T1_REP/stabledevice
shell> touch PART_DB1.dat
shell> touch PART_DB2.dat
Dans Replication Server (CGC_T1_REP
) :
shell> isql –Usa –SCGC_T1_REP –P<password>
add partition PART_DB1 on '/dba/sybase/CGC_T1_REP/stabledevice/PART_DB1.dat' with size 2000
go
add partition PART_DB2 on '/dba/sybase/CGC_T1_REP/stabledevice/PART_DB2.dat' with size 1000
go
À l’issue de la création de ces deux nouvelles partitions, il est nécessaire de suspendre les connexions vers les bases répliquées pour lesquelles une option d’affinité va être appliquée
suspend connection to CGC_T2_ASE.dbrep1
go
suspend connection to CGC_T2_ASE.dbrep2
go
L’option d’affinité peut alors être appliquée pour les deux connexions :
alter connection to CGC_T2_ASE.dbrep1 set
disk_affinity to 'PART_DB1'
go
alter connection to CGC_T2_ASE.dbrep2 set disk_affinity to 'PART_DB2'
go
Une fois l’option d’affinité appliquée, réactiver les connexions avec la commande resume
:
resume connection to CGC_T2_ASE.dbrep1
go
resume connection to CGC_T2_ASE.dbrep2
go
Suppression des suggestions et partitions
La suppression d’une suggestion est réalisée en appliquant
l’option set disk_affinity to off
pour une connexion vers une base
répliquée avec la commande alter connection
.
alter connection to dataserver.database
set disk_affinity to 'off'
Cette commande supprime la suggestion dans la table rs_diskaffinity
(base
RSSD).
Par ailleurs, une partition d’un Replication Server peut être encore en cours d’utilisation (segments non encore
livrés) lorsqu’une commande drop partition
est lancée par un administrateur : dans ce cas de figure si une ou
plusieurs suggestions d’allocation sont associées à la
partition à supprimer dans la table rs_diskaffinity
, Replication Server marque les
suggestions à supprimer mais il ne les supprime pas tant que les données
stockées sur la partition n’ont pas été toutes livrées et que la
partition n’a pas été supprimée.