AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Facebook 开源 Haxl:使用 Haskell 进行隐式并发数据访问

  • 2014-06-17
  • 本文字数:643 字

    阅读完需:约 2 分钟

Facebook 开源了 Haxl,一个为高效并发数据访问而开发的库。这个库一方面利用了 Haskell 的传统优势,比如表达力很强的类型系统、对正确性和安全性的保障,另一方面也受益于 GHC(译者注:Haskell 编译器)的高性能运行时库,解决烦人的隐式并发数据访问的问题。

Haxl 简化了对远程数据的访问,比如数据库网站服务。对同一数据源的多个访问请求,或同时从不同的数据源请求数据,它都能批量处理,并且缓存上一次的结果。Jon Purdy 是开发 Haxl 的工程师之一,他解释说——

这里基本的思想是,你可以写点幼稚的代码来获取数据,它们看起来效率可以非常低下——比如循环查询、没有明显的去冗余——但在底下它就被神奇地编译成了高效的并行获取代码。

为了在你的应用中使用 Haxl,你需要创建一个简单的软件层来表示你的数据源,以及描述如何访问它。

Haxl 使用 Applicative 数据类型来使计算机指令以隐式的并行方式运行。从这个演讲里面你可以了解它更多的工作原理。你可以在 hackage 上找到 Haxl,也可以访问它在 Github 上的源码

Haxl 是 FXL 的替代者,FXL 也是为了解决同一问题而诞生的。虽然 FXL 有一个干净的执行模型,但它的实现有明显的性能问题,尤其是对 CPU 和内存的使用。使用 Haskell 和 GHC 是最好的选择。你可以了解更多 Haxl 背后的故事以及 Facebook 当前使用它的案例。


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-06-17 03:016238
用户头像

发布了 77 篇内容, 共 38.8 次阅读, 收获喜欢 26 次。

关注

评论

发布
暂无评论
发现更多内容

聊聊Kotlin中的lambda

北洋

kotlin Andriod 4月月更

云原生训练营学习总结

arctec

《Mybatis 手撸专栏》第6章:数据源池化技术实现

小傅哥

Java 面试 小傅哥 mybatis 源码学习

想学习算法交易的工程师们,机会来啦~

非凸科技

rust 招聘 基金 量化交易 算法交易

ThinkPHP6+swoole+easywechat使用教程

CRMEB

元宇宙(Metaverse)对普通人意味着什么?

涛哥 数字产品和业务架构

元宇宙

元宇宙或许翻译错了

涛哥 数字产品和业务架构

元宇宙

redis优化系列(四)哨兵机制

乌龟哥哥

4月月更

imazingAPP软件怎么安装到苹果手机电脑上面?

茶色酒

imazing

微信小程序开发系列 (四) :微信小程序的页面跳转路由设计

汪子熙

微信小程序 微信 前端开发 微信开发 4月月更

一种很爽的学习方法,被我Get到了!

博文视点Broadview

我们需要一个元宇宙吗?

涛哥 数字产品和业务架构

元宇宙

业务架构师的思维转变

涛哥 数字产品和业务架构

自己动手写 Docker 系列 -- 6.5 启动时给容器配置网络

Go Docker 4月月更

大数据培训Spark SQL底层执行流程

@零度

Sparksql 大数据开发

[Day24]-[二叉树] 相同树

方勇(gopher)

LeetCode 二叉树 DFS BFS 数据结构算法

imazing是什么软件?

茶色酒

imazing

Docker下,极速体验pinpoint1.6.3

程序员欣宸

Java 分布式 4月月更

微服务与领域驱动设计,架构实践总结

架构 微服务 领域驱动设计 软件架构

云原生训练营 -Week10

jjn0703

云原生训练营

苹果手机怎么恢复备份?iOS备份恢复教程

茶色酒

苹果手机备份

微信小程序开发系列 (三) :微信小程序如何响应用户点击事件和微信平台 API 的使用方法介绍

汪子熙

微信小程序 微信公众平台 前端开发 4月月更 微信平台

提前起跑的OPPO,靠闪充完成一次“三级跳”

脑极体

元宇宙是人类的终极未来吗?

涛哥 数字产品和业务架构

元宇宙

Go 语言入门很简单:正则表达式

宇宙之一粟

正则表达式 Go 语言 4月月更

C语言总结_数组全方位练习

DS小龙哥

4月月更

Spark SQL 字段血缘在 vivo 互联网的实践

vivo互联网技术

大数据 spark Sparksql 数据处理

华为云大咖带你玩转云原生基础设施之K8s

坚果

4月月更

别再用老版云效Projex项目协作了,该升级了

阿里云云效

阿里云 项目管理 研发团队 项目协作 项目协作工具

Facebook开源Haxl:使用Haskell进行隐式并发数据访问_Meta_Roopesh Shenoy_InfoQ精选文章