BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

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

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

Favoris

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

Contenu Éducatif

BT