• Aucun résultat trouvé

Coût dû à la réplication

Partie III – Mise en œuvre et évaluation 101

9.2.1 Coût dû à la réplication

Le but de cette première série d’expérimentations est d’évaluer le surcoût dû à la tolé-rance aux fautes tel qu’observé par les applications (les clients JUXMEM). Nous mesurons donc les coûts des accès à une donnée partagée pour différents degrés de réplication et dif-férentes tailles de données. Le type de réplication utilisé estsemi-actif, il correspond à celui fondé sur un nœud sérialisateur décrit au chapitre précédent.

Description. Nous utilisons ici 3 grappes dans lesquelles nous créons 3 groupes cluster JUXMEM. Chacun des groupesclustercontient 1 pair gestionnaire et 7 pairs fournisseurs. Le groupeclustercorrespondant à la grappeG3localisée à Rennes héberge de plus 1 pair client.

Afin d’éviter le “bruit” qui serait introduit dans nos mesures par des attentes sur des verrous, ce pair est le seul a accéder à la donnée, séquentiellement, alternant lectures et écritures. Afin que les lectures engendrent les transferts de données, ce client projette (map) 2 fois la donnée dans sa mémoire locale : une fois pour les lectures et une fois pour les écritures. Tout se passe donc comme s’il y avait 2 clients parfaitement synchronisés effectuant des lectures et écritures à tour de rôle.

Unelecturecorrespond à la prise du verrou en lecture (acquire_read), la récupération de la valeur de la donnée et à la libération du verrou (release). Une écriture correspond à la prise du verrou en écriture (acquire), à l’écriture de la donnée (memset) et à la libération du verrou avec propagation de la donnée (release).

Nous mesurons les performances des lectures et écritures avec des données de taille comprise entre 1 ko et 64 Mo (1 Mo dans la majorité des cas) en faisant varier la taille du GDG (Global Data Group) de 1 à 3 LDG (Local Data Group), et la taille des LDG de 1 à 7 fournisseurs (figures 9.1, 9.2, 9.3, 9.4, 9.5 et 9.6). Chaque courbe représente les latences pour un degré de réplication, noté sous la forme “nombre de grappes” ×

“nombre de fournisseurs par grappe”.

9.2 – Expérimentations avec JUXMEM 123

1x7

10 100 1000

64 Mo 16 Mo 4 Mo

1 Mo 256 ko 64 ko

16 ko 4 ko

1 ko

Latence des opérations (en ms)

Taille de la donnée 1x11x2

1x31x5

1

FIG. 9.1 – Latences des opérations de lecture en fonction de la taille de la donnée et du nombre de fournisseurs dans une grappe.

2x5

20 30 40 50 60

1 Mo 256 ko

64 ko 16 ko

4 ko 1 ko

Latence des opérations (en ms)

Taille de la donnée 2x12x2

2x3

10

FIG. 9.2 – Latences des opérations de lecture en fonction de la taille de la donnée et du nombre de fournisseurs répartis dans 2 grappes.

Lectures. Les figures 9.1, 9.2 et 9.3 présentent les latences des lectures d’une donnée ré-pliquée dans respectivement 1, 2 et 3 grappes. Ces figures montrent que le surcoût de la réplication au sein des grappes (LDG) sur les opérations de lecture de données de grande taille est restreint : il est inférieur à 3%dès que la taille de la donnée dépasse 1 Mo. Pour les données de petites taille, ce surcoût est toutefois important : 4 ms pour une donnée de 1 ko. Ces résultats s’expliquent par le fait que les opérations de lecture ne font intervenir les mécanismes de réplication que pour les opérations de synchronisation acquire_readet release. La donnée est transférée à partir d’un seul nœud fournisseur. Aussi, plus la donnée est grande, plus le surcoût introduit par la réplication lors des opérations de synchronisa-tion est négligeable par rapport au temps de transfert de la donnée du fournisseur au client.

En revanche pour les données de petite taille, le coût engendré par les échanges entre les

3x5

20 30 40 50 60

1 Mo 256 ko

64 ko 16 ko

4 ko 1 ko

Latence des opérations (en ms)

Taille de la donnée 3x13x2

3x3

10

FIG. 9.3 – Latences des opérations de lecture en fonction de la taille de la donnée et du nombre de fournisseurs répartis dans 3 grappes.

fournisseurs lors des opérations de synchronisation est non négligeable. Les opérations de synchronisationacquire_readetreleaseengendrent des communications de groupe comme décrit à la section 8.3.

1x7

10 100 1000

64 Mo 16 Mo 4 Mo

1 Mo 256 ko 64 ko

16 ko 4 ko

1 ko

Latence des opérations (en ms)

Taille de la donnée 1x11x2

1x31x5

1

FIG. 9.4 – Latences des opérations d’écriture en fonction de la taille de la donnée et du nombre de fournisseurs dans une grappe.

Écritures. Les figures 9.4, 9.5 et 9.6 présentent les latences des écritures d’une donnée ré-pliquée dans respectivement 1, 2 et 3 grappes. Pour les opérations d’écriture, le coût de la réplication au sein d’une grappe est élevé : le simple ajout d’une copie fait plus que doubler les temps d’écriture de la donnée (figure 9.4, courbes1×1et1×2). Ce surcoût est essentielle-ment dû au temps de transfert de la donnée sur le deuxième fournisseur et à l’attente de son acquittement : la donnée est d’abord transférée du client vers le fournisseur jouant le rôle de

9.2 – Expérimentations avec JUXMEM 125

1x5 (pour comparaison)

20 30 40 50 60 70 80 90 100

1 Mo 256 ko

64 ko 16 ko

4 ko 1 ko

Latence des opérations (en ms)

Taille de la donnée 2x12x2

2x32x5

10

FIG. 9.5 – Latences des opérations d’écriture en fonction de la taille de la donnée et du nombre de fournisseurs répartis dans 2 grappes.

1x5 (pour comparaison)

40 60 80 100

1 Mo 256 ko

64 ko 16 ko

4 ko 1 ko

Latence des opérations (en ms)

Taille de la donnée 3x13x2

3x33x5

20

FIG. 9.6 – Latences des opérations d’écriture en fonction de la taille de la donnée et du nombre de fournisseurs répartis dans 3 grappes.

sérialisateur, puis de ce premier fournisseur vers le deuxième. En revanche, l’ajout de copies supplémentaires est bien moins coûteux. Le nœud sérialisateur n’attend pas d’acquittement detousles membres, mais seulementd’une majoritéd’entre eux. Ainsi, dans le cas1×3, un acquittement peut-être retourné au client avant que la donnée n’est été transférée complè-tement sur le troisième fournisseur. Lors de nos expérimentations, nous avons observé une différence de l’ordre de5%pour des données de 1 Mo entre l’utilisation de net den+ 1 fournisseurs, pourn >1.

Les figures 9.5 et 9.6 montrent que le surcoût de la réplication intragrappe est négligeable par rapport au surcoût de la réplication intergrappe. En effet, les mécanismes de réplication intergrappe utilisent les liens réseau reliant les grappes entre elles. Ces liens ont une latence bien plus élevée que ceux présents au sein des grappes. Cependant, la série

d’expérimenta-tion suivante montre l’intérêt de la présence de copies de la donnée dans chaque grappe où des clients sont susceptibles d’y accéder.