2 votes

Différence de performance entre RAFT Orderer et Orderer avec Kafka (Latence, Débit, TPS)

Est-ce que quelqu'un a comparé les performances (latence, débit, TPS) entre l'ordonnanceur avec Kafka et l'ordonnanceur RAFT ?

Je vois une différence considérable en termes de latence, de débit et de TPS.

J'ai essayé avec le même setup et la même configuration des ressources sur deux VM différentes (la seule différence étant le système de l'ordonnanceur).

Note : Un seul ordonnanceur utilisé dans les deux réseaux. Version de Fabric : 1.4.4

L'ordonnanceur avec Kafka est plus efficace que RAFT. J'utilise la configuration par défaut pour RAFT et Kafka.

J'ai essayé avec un générateur de charge à un taux de 100 TPS. Avec Kafka, tous les paramètres sont bons (latence de 0,3 à 2 secondes) tandis qu'avec RAFT, la latence augmente progressivement de 2 à 15+ secondes, le taux d'échec de tx est également élevé.

Quelle pourrait être la raison de cette différence considérable en termes de TPS, de débit et de latence ?

Veuillez corriger si je fais une erreur.

0voto

Paul Points 23

Pour commencer, je ne lancerais pas de tests de performance en utilisant un seul ordonnanceur. Ces systèmes de tolérance aux fautes sont là pour gérer la distribution et le consensus d'un système distribué, donc en utilisant un seul ordonnanceur, vous éliminez fondamentalement la raison de leur existence. C'est comme si vous compariez deux voitures de sport sur une route en terre et que vous vous demandiez laquelle est la plus rapide.

Ensuite, il y a d'autres choses à prendre en compte, comme si vous connectez les services via TLS, la latence générale du réseau ainsi que le nombre de courtiers/nœuds que vous exécutez.

Chris Ferris a réalisé une analyse de performance initiale des deux systèmes avant la sortie de Raft, et il semblait que c'était à la fois plus rapide et pouvait gérer presque deux fois plus de transactions par seconde. Vous pouvez lire son article de blog ici : Est-ce que Hyperledger Fabric performe à l'échelle?

Vous devriez également être conscient du problème de double dépense et des collisions de clés qui peuvent survenir si vous exécutez un système distribué sous charge importante. Vous devriez prendre les mesures nécessaires pour éviter cela, ce qui peut causer un goulot d'étranglement. Consultez ce article Medium sur les collisions, et la documentation de Hyperledger Fabric sur la mise en place d'un réseau à haut débit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X