folly/io:compression: add LZMA2 support
authorAndrew Gallagher <agallagher@fb.com>
Tue, 10 Dec 2013 23:32:46 +0000 (15:32 -0800)
committerJordan DeLong <jdelong@fb.com>
Fri, 20 Dec 2013 21:06:33 +0000 (13:06 -0800)
commit484392b014c24f572bf8431dbc94466673c05c68
tree5ec6b7d242e5d443aca3cff1f081c08f44fd170a
parent3aed59d8e656abb09c33102f7a7caf45cf06155d
folly/io:compression: add LZMA2 support

Summary:
Adds LZMA2 and LZMA2_VARINT_SIZE compression support for
folly::io::Compression.  This format shows some big wins for
compressing ELF object files and is useful in our modified
ccache client.

Test Plan:
Compression unittests.  Also, tested compressing object files built
in fbcode.  On average, the compression percentage improved from
~16.5% to ~12%.  But we save a lot more as object files get bigger,
which can help make bigger object files fit over fewer memcache
keys.

Reviewed By: njormrod@fb.com

FB internal diff: D1092576
folly/io/Compression.cpp
folly/io/Compression.h
folly/io/test/CompressionTest.cpp