BT

Votre opinion compte! Merci de bien vouloir répondre au sondage InfoQ!

Facebook Open-source Haxl, outil de requêtage de données implicite et concurrent, utilisant Haskell

| par Roopesh Shenoy  Abonnés , traduit par Olivier Gonthier Suivre 0 Abonnés le 09 juil. 2014. Durée de lecture estimée: 1 minute |

Une note à nos lecteurs : Suite à vos retours, nous avons développé un ensemble de fonctionnalités qui vous permettent de réduire le bruit, tout en ne perdant pas de vue ce qui est important. Recevez des notifications en ligne et par e-mail en choisissant les sujets qui vous intéressent.

Facebook a rendu open-source Haxl, une librairie permettant de gérer de manière efficace les accès concurrents aux données. La libraire tire profit des spécificités d'Haskell comme le système de type expressif, sa garantie de typage et son exactitude, et les performances au runtime de GHC, pour résoudre l'épineux problème de concurrence.

Haxl simplifie l'accès aux données distantes, comme celles issues de bases de données ou de services web. Il peut effectuer de multiples requêtes groupées sous forme de batch vers une même source de données, requêter différentes sources en parallèle, et mettre en cache les précédentes requêtes. Jon Purdy, l'un des ingénieurs ayant contribué à Haxl, explique :

L'idée basique est de pouvoir écrire naïvement du code pour récupérer des données, qui semble horriblement inefficace, comme des requêtes dans des boucles, ou aucune gestion de doublons explicite, mais qui se transforme magiquement en un système sous-jacent de requêtage concurrent efficace.

Pour utiliser Haxl dans vos applications, vous devez créer une simple couche qui décrit vos sources de données, et comment y accéder.

Haxl utilise la classe de type Applicative pour permettre aux traitements d'être implicitement concurrents. Vous trouverez plus de détails sur ce sujet dans cette présentation. La libraire est disponible sur hackage, et son code source est publié sur GitHub.

Haxl est un successeur de FXL, qui résoud les mêmes problématiques. Bien que FXL ait également un modèle d'éxécution pure, son implémentation a apparemment posé des problèmes de performances, surtout concernant l'utilisation du processeur et la consommation de mémoire. Utiliser Haskell, avec GHC, était la meilleure alternative. Vous trouverez plus de détails concernant l'histoire d'Haxl dans cet article, qui montre également quelques cas d'utilisation de Haxl chez Facebook.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT