BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Haxl - Haskellを使った暗黙的な並列データアクセス

Haxl - Haskellを使った暗黙的な並列データアクセス

ブックマーク

原文(投稿日:2014/06/11)へのリンク

Facebookは,効率的な並行データアクセスのためのライブラリであるHaxlをオープンソースとして公開した。表現力のある型システムや並列性,安全性保証といった,Haskellの従来からの強みに加えて,GHCの持つ実行時のハイパフォーマンスを活用することで,暗黙の並列データアクセスという厄介な問題を解決する。

HaxlはデータベースWebサービスといった,リモートデータへのデータアクセスを単純化する。同じデータソースに対する複数の要求,複数のデータソースに対する要求を,自動的に並列バッチ処理することが可能であると同時に,実行された要求のキャッシュも行う。開発に携わったエンジニアのひとりであるJon Purdy氏は,次のように説明する

ここでの基本的な考え方は,どうしようもなく不効率なデータ取得コード — ループ内のクエリや明示的でない重複排除のような — をネイティブに書いても,内部で効果的な並列処理へと魔法のように変換する,というものです。

アプリケーションでHaxlを使うには,データソースとそのアクセス方法を定義するために,薄いレイヤを作る必要がある。

Haxlでは計算処理を暗黙的に並列化可能にするため,Applicative型のクラスを使用している。詳細な動作については,このプレゼンテーションを見るとよいだろう。ライブラリはhackageから,そのソースコードはGitHubから取得することができる。

Haxlは,同種の問題を解決するFXLの後継となるものだ。 FXLも純粋な実行モデルを持っているが,実装にはパフォーマンス上,特にCPUとメモリ使用量に関して問題があるようだ。これまでは,HaskelとGHCの使用が最高の代替策だった。Haxlの背景となった事情や,Facebookで現在運用されているユースケースについても詳細も公開されている。

この記事に星をつける

おすすめ度
スタイル

BT