Google a lancé un algorithme de hachage cohérente limitée charge, la résolution de problèmes d'équilibrage de charge du serveur

studyinsweden

Lei Feng réseau AI Technology Review par: grands services Web doivent exécuter l'équilibrage de charge, tels que l'hébergement de contenu. La pratique courante entre plusieurs serveurs répartir uniformément le client, afin d'éviter une surcharge tout serveur exécutant. De plus, les chercheurs de Google espèrent trouver un moyen de distribuer afin que le client et le serveur peuvent être ajoutés ou supprimés à tout environnement dynamique du temps, la distribution des fluctuations ne change pas beaucoup au fil du temps.

Google coopération avec le chercheur invité à l'Université de Copenhague Mikkel Thorup, a développé un nouvel algorithme d'allocation efficace pour résoudre ce problème: le contrôle strict de la charge maximale de chaque serveur, et a étudié la théorie et l'expérience. Ensuite, Google et équipe nuage Academy, le Pub Google Cloud / Sub (un événement extensible service de streaming) dans l'algorithme, et tout en assurant la cohérence et la stabilité de la répartition des charges (affectées au serveur l'uniformité de la charge maximale) des améliorations substantielles. En Août 2016, l'Institut Google de New York Vahab Mirrokni, Mikkel Thorup et Mikkel Thorup a publié un document « hashage cohérent avec des charges bornées », et décrit l'algorithme dans le document, et part dans le ArXiv, faciliter des fins de recherche plus larges .

Trois mois plus tard, Andrew Rodland de Vimeo nous a dit qu'il a trouvé le papier et mis en uvre cet algorithme dans haproxy (un logiciel open-source largement utilisé), qui a été utilisé pour la charge d'équilibrage des projets Vimeo. Le résultat est étonnant: Cet algorithme va les aider à la bande passante en cache est réduite de près de 8 fois, pour résoudre une expansion de goulot d'étranglement de l'échelle. Cela prouve peut être appliqué la chanson de la vallée de l'institut de recherche de la théorie à la pratique, non seulement, mais aussi les avantages ouverts et efficaces.

Ce qui suit est une compilation de documents Lei Feng partie du réseau, ne doit pas être reproduit sans autorisation.

fond

En dépit de l'algorithme de hachage constante début afin d'être appliqué à la charge d'équilibrage dans un environnement dynamique, mais un problème fondamental est largement répandue, et dans certains cas, ils peuvent conduire à une charge sous-optimale en équilibre sur de nombreux serveurs.

De plus, le client et le serveur peuvent être ajoutés ou supprimés sur une base régulière, mais Google ne veut pas que l'équipe de recherche conduit donc à un grand nombre de clients mobiles. Par conséquent, l'algorithme d'allocation dynamique de non seulement d'assurer l'équilibrage de charge toujours correcte, mais aussi pour minimiser le nombre de changements après chaque mouvement du client. En outre, la distribution restreinte capacité du serveur rend ce problème encore plus difficile, qui est, chaque serveur a une limite de capacité de charge maximale, nous espérons être en mesure de fermer à la capacité de charge moyenne.

En d'autres termes, alors que nous voulons assurer l'uniformité et la cohérence de la distribution. Il y a beaucoup de littérature discute le scénario simple où le cluster de serveurs est fixe, seul le client est mis à jour. Mais dans cet article, l'équipe de recherche Google a discuté des scènes entièrement dynamiques, à savoir le client et le serveur peuvent être ajoutés et supprimés à tout moment.

algorithme

équipe de recherche Google à chaque client imaginer une balle, imaginez le serveur dans la zone de but, une étude attentive des processus stochastiques de marquer. Afin d'assurer l'uniformité de la zone de but, toute la charge souhaitée au plus près de la zone de chargement (numéro de la boîte divisée par le nombre de billes). Pour les paramètres e, l'équipe Google sera la capacité de chaque boîte est réglée sur la limite supérieure et inférieure de la charge moyenne (1 + ) fois. Cette gamme de volume permet au concepteur de répondre à une cohérence et l'uniformité de l'algorithme de distribution.

Imaginez couvrant une plage de nombres sur un cercle. équipe de recherche Google sur la balle et la zone de but ont été appliqués différentes fonction de hachage pour obtenir une position numérique dans la plage correspondante sur le cercle. Nous procédons ensuite dans un ordre spécifique (en supposant en fonction de leur ID) attribué balle, quelles que soient leurs valeurs de hachage. Chaque bille est alors déplacé dans le sens horaire, et il est affecté à la capacité restante de la première boîte.

Imaginons six balles et trois boîtes, en utilisant deux fonctions de hachage à la distribution aléatoire de la balle dans la zone de manière cyclique. capacité disponible de chaque boîte 2, puis attribué séquentiellement dans un ordre croissant bille sphérique (en fonction de leur ID), se déplaçant dans le sens horaire, la balle dans la surface 1 C, boule de résolution dans la surface 2 A, n ° 3 et n ° 4 de la balle dans la balle zone B, la balle dans la zone C n ° 5, n ° 6, puis essayer de déplacer la balle dans la zone B dans le sens horaire, cependant, la zone B a atteint les limites de capacité (capacité de la boîte 2, la boîte B a été installée une bille 3 et la bille 4), de sorte n ° 6 dans la surface pour tenter de continuer à se déplacer dans le sens horaire C, mais la boîte C a atteint sa capacité, la dernière balle dans la surface 6 A.

Lorsque toutes les mises à jour du système (ou des boîtes à billes ajouter / supprimer), l'algorithme doit être recalculé afin d'assurer l'uniformité de la distribution. Algorithme chose intelligente est de veiller à ce que la mise à jour à petite échelle (une petite boule ou une boîte d'ajouter / supprimer) n'a causé que des modifications mineures d'allocation pour répondre cohérence. Dans le papier, l'équipe de recherche Google a montré que l'ajout et la suppression d'une balle peut générer d'autres boules O (1 / 2) mouvement. La chose la plus importante est le nombre de la charge sur la communauté et le système est relativement indépendant sphère ou une boîte. Donc, doublant même le nombre de balles ou des boîtes, les limites de charge ne changeront pas. Cela améliore l'évolutivité de la distribution (répartition même étendre l'échelle ne modifie pas la cohérence). balle simulé la figure ou la boîte lors de la mise à jour, numéro de téléphone mobile (redistribution) changement des mises à jour.

La courbe rouge montre le nombre moyen de mouvements, la ligne bleue représente des valeurs différentes de la variance. La courbe de tirets est l'étude théorique limite supérieure charge recommandée (prédite par le nombre réel de mouvements peut mieux adapter) sur la base. De plus, pour une valeur de , l'équipe de recherche Google connaissait la charge limite supérieure et inférieure de chaque boîte est (1 + ) fois la charge moyenne. La figure suivante illustre les différentes valeurs de la répartition de la charge (0.1,0.3,0.9) case correspondante.

Les différentes valeurs de la répartition de la charge . distribution sensiblement uniforme de la charge, la couverture de charge moyenne à la charge moyenne de 0 (1 + e) fois, un grand nombre de charge de la boîte est égale à (1 + e) fois

Comme on peut le voir d'après la figure uniformité et la consistance d'un compromis - faible valeur e améliorée uniformité, réduit la cohérence; e et une valeur plus grande consistance augmente et diminue l'uniformité. Abaisser les valeurs de [epsilon] pour assurer la charge est égale à une zone de charge moyenne en nombre (1 + e) fois, charge séquentiellement le reste de l'affaiblissement dû à la boîte.

Offrir un service d'hébergement de contenu peut rencontrer une variété de scénarios très différents, dans ce cas, cette cohérence algorithme de hachage Google Institutes serait la solution idéale, même face du pire des cas.

Les auteurs se sentent l'enthousiasme pour les résultats des tests internes, mais encore plus heureux que le monde extérieur a constaté que l'algorithme est très efficace et à la fois la nature open source permet à quiconque d'utiliser cet algorithme.

Remerciements: Merci à Google Cloud Pub / Sub équipe d'Alex totok, Matt Gruskin, Sergey Kondratiev et Haakon Ringberg, et Mikkel Thorup précieuses contributions à cet article.

Lien original: https: //research.googleblog.com/2017/04/consistent-hashing-with-bounded-loads.html, Lei Feng réseau compilé

Ajouté taille de 13 pouces, une évolutivité accrue, HP a dévoilé la deuxième génération de l'entreprise de la guerre 66 | titane Nouvelles
Précédent
inégalité Philippines: la mouche riche, pauvre ordures manger, dormir cimetière
Prochain
« Le nouveau destroyer élevé » racontera l'histoire du campus et Higashiyama Nao 3V3
la consommation actuelle Civic, le rappeur Max Ma façon de se sentir le pouls de pointe « du nerf à la consommation »? | compte à rebours T-EDGE six jours
Choc, Jackie Chan et Teresa fait partenaire, les amis: Il est vraiment difficile de manger de la nourriture pour chiens
Texas Hold'em en Asie pour la première fois la guerre homme-machine est sur le point de jeu ouvert! | Joint le texte intégral du discours Kai-Fu Lee
Il a pris un groupe de « la plus belle du monde » modèle photo, lui a fait look superbe!
écran de téléphone est trop grande, difficile à contrôler avec une seule main, comment faire? Apple a longtemps été pour vous aider à mieux penser
passeport Luhan a été exposé, la composition de l'original soulagé qu'il avait un long chemin, les utilisateurs: il doit être pot frit
Une part importante de radiation illégale nouvelle réglementation officielle qui a atterri à « lécher couteau sang »?
Rejeter frauduleux! Six conseils pratiques, vous apprendre à créer le plus référentiel de mot de passe sécurisé iPhone
Des dizaines de millions de dollars dans un sous-vêtement, à la fin est un peu comment?
Millet MIUI 10 version officielle stable de la poussée, le premier lot de 12 modèles prennent en charge! Avez-vous?
Plein de souvenirs! Mickey Mouse est âgé de 90 ans