Linux-BTRFS Archive on
 help / color / Atom feed
From: Chris Mason <>
To: <>, Philip Worrall <>,
Subject: Re: [PATCH 0/8] Add support for LZ4 compression
Date: Wed, 4 Jun 2014 10:00:06 -0400
Message-ID: <> (raw)
In-Reply-To: <>

On 06/03/2014 11:53 AM, David Sterba wrote:
> On Sat, May 31, 2014 at 11:48:28PM +0000, Philip Worrall wrote:
>> LZ4 is a lossless data compression algorithm that is focused on 
>> compression and decompression speed. LZ4 gives a slightly worse
>> compression ratio compared with LZO (and much worse than Zlib)
>> but compression speeds are *generally* similar to LZO. 
>> Decompression tends to be much faster under LZ4 compared 
>> with LZO hence it makes more sense to use LZ4 compression
>> when your workload involves a higher proportion of reads.
>> The following patch set adds LZ4 compression support to BTRFS
>> using the existing kernel implementation. It is based on the 
>> changeset for LZO support in 2011. Once a filesystem has been 
>> mounted with LZ4 compression enabled older versions of BTRFS 
>> will be unable to read it. This implementation is however 
>> backwards compatible with filesystems that currently use 
>> LZO or Zlib compression. Existing data will remain unchanged 
>> but any new files that you create will be compressed with LZ4.
> tl;dr simply copying what btrfs+LZO does will not buy us anything in
> terms of speedup or space savings.

I have a slightly different reason for holding off on these.  Disk
format changes are forever, and we need a really strong use case for
pulling them in.

With that said, thanks for spending all of the time on this.  Pulling in
Dave's idea to stream larger compression blocks through lzo (or any new
alg) might be enough to push performance much higher, and better show
case the differences between new algorithms.

The whole reason I chose zlib originally was because its streaming
interface was a better fit for how FS IO worked.


  reply index

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-31 23:48 Philip Worrall
2014-05-31 23:48 ` [PATCH 1/8] Btrfs: Add kernel config options for LZ4 Philip Worrall
2014-05-31 23:48 ` [PATCH 2/8] Btrfs: Add lz4.c to the Makefile Philip Worrall
2014-05-31 23:48 ` [PATCH 3/8] Btrfs: Add lz4 compression to avaialble compression ops Philip Worrall
2014-05-31 23:48 ` [PATCH 4/8] Btrfs: Add definition for external lz4 compression struct Philip Worrall
2014-05-31 23:48 ` [PATCH 5/8] Btrfs: Add feature flags for LZ4 support Philip Worrall
2014-05-31 23:48 ` [PATCH 6/8] Btrfs: Ensure LZ4 feature flags are set when mounting with LZ4 Philip Worrall
2014-05-31 23:48 ` [PATCH 7/8] Btrfs: Add lz4 compression/decompression struct ops Philip Worrall
2014-05-31 23:48 ` [PATCH 8/8] Btrfs: Check for compress=lz4 in mount options Philip Worrall
2014-06-02 22:04 ` [PATCH 0/8] Add support for LZ4 compression Mitch Harder
2014-06-03 15:53 ` David Sterba
2014-06-04 14:00   ` Chris Mason [this message]
2014-06-12  8:47     ` David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-BTRFS Archive on

Archives are clonable:
	git clone --mirror linux-btrfs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-btrfs linux-btrfs/ \
	public-inbox-index linux-btrfs

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone