Partition affinity (Replication Server 12.1)

Logo

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 :

Sybase replication partition affinity

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.