BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Google Snappy: 高速圧縮ライブラリ

Google Snappy: 高速圧縮ライブラリ

原文(投稿日:2011/04/06)へのリンク

GoogleはSnappyという圧縮/伸長ライブラリをオープンソース化した。シングルコアのIntel Core i7プロセッサにおいて、少なくとも250MB/s-500MB/sでデータストリームを処理できるという。

SnappyはこれまでZippyという名前で知られており、Googleが実際にBigTable、MapReduce、RPCなど数多くのプロジェクトで内部的に使っている圧縮ライブラリだ。Googleによると、このライブラリとアルゴリズムは圧縮サイズや他のツールとの互換性ではなく、速度についてチューニングされているそうだ。Snappyは64-bit x86プロセッサ向けに最適化されており、シングルコアのIntel Core i7プロセッサにおいて少なくとも圧縮で250MB/s、伸長で500MB/sを実現している。

この高速な圧縮は圧縮率を下げることで実現されており、圧縮後のサイズは他の圧縮ライブラリよりも20-100%大きくなる。Snappyの圧縮率はプレーンテキストで「1.5-1.7x、HTMLで約2-4x、JPEGやPNGなど圧縮済みデータで1.0x」だという。

GoogleはSnappyを「壊れたり悪意のある入力でもクラッシュしないように設計」していて堅牢であり、Googleのプロダクション環境で何ペタバイトものデータを圧縮するのに使えるほど安定していると宣伝している。

もしzlib、LZO、LZF、FastLZ、QuickLZといった各種圧縮ライブラリが同じマシンにインストールされていれば、Snappyはそれらとのベンチマークに使うことができる。ツールは製品にリンクされるC++ライブラリとして提供されるが、それ以外にも、HaskellJavaPerlPythonRubyへのバインディングがある。

Snappyは新BSDライセンスでオープンソース化されている。

この記事に星をつける

おすすめ度
スタイル

BT