Définition de la taille d'unités centrales pour des transactions parallèles

Les transactions à partition unique présentent une évolution de débit linéaire à mesure que la taille de la grille augmente. Les transactions parallèles diffèrent des transactions à partition unique, car elles affectent un ensemble de serveurs (cet ensemble peut comprendre tous les serveurs).

Si une transaction affecte tous les serveurs, le débit est limité au débit du client ayant initié la transaction ou au serveur affecté le plus lent. Les grilles de données de grande taille répartissent davantage les données et fournissent plus d'espace processeur, de mémoire, de réseau, etc. Toutefois, le client doit attendre la réponse du serveur le plus lent et doit utiliser les résultats de la transaction.

Lorsqu'une transaction affecte un sous-ensemble de serveurs, M sur N serveurs reçoivent une requête. Le débit est alors "N divisé par M" fois plus vite que le débit du serveur le plus lent. Par exemple, si vous disposez de 20 serveurs et d'une transaction qui affecte 5 serveurs, le débit est 4 fois supérieur au débit du serveur le plus lent de la grille de données.

Lorsqu'une transaction parallèle se termine, les résultats sont envoyés à l'unité d'exécution du client ayant commencé la transaction. Ce client doit ensuite procéder à l'agrégation des résultats en unité d'exécution simple. Le temps d'agrégation augmente avec l'augmentation du nombre de serveurs affectés par la transaction. Toutefois, cette durée dépend de l'application, car il se peut que chaque serveur renvoie un résultat plus petit à mesure que la taille de la grille de données augmente.

Généralement, les transactions parallèles affectent tous les serveurs dans la grille de données, car les partitions y sont réparties uniformément. Dans ce cas, le débit se limite à la première hypothèse.

Récapitulatif

Avec cette définition de taille, vous disposez de trois métriques, comme suit. Si vous avez besoin de 10 serveurs pour la quantité de mémoire nécessaire, mais que vous obtenez uniquement 50 % du débit requis en raison d'une saturation du processeur, vous devait avoir deux fois plus de serveurs.

Pour une stabilité optimale, vous devez exécuter les serveurs à 60 % du chargement de processeur et les segments de mémoire de JVM à 60 % du chargement des segments de mémoire. Les renforts peuvent ensuite pousser l'utilisation du processeur à 80-90 %, mais n'exécutent pas régulièrement vos serveurs à un niveau supérieur à ces niveaux.