From: Vyacheslav Dubeyko <slava@dubeyko.com>
To: Dhaval Giani <dgiani@mozilla.com>
Cc: "Taras Glek" <tglek@mozilla.com>, "Jörn Engel" <joern@logfs.org>,
linux-kernel@vger.kernel.org, tytso@mit.edu, vdjeric@mozilla.com,
glandium@mozilla.com, linux-ext4@vger.kernel.org,
linux-fsdevel@vger.kernel.org
Subject: Re: [RFC/PATCH 0/2] ext4: Transparent Decompression Support
Date: Fri, 26 Jul 2013 12:01:23 +0400 [thread overview]
Message-ID: <1374825683.3671.35.camel@slavad-ubuntu> (raw)
In-Reply-To: <51F17005.7030309@mozilla.com>
On Thu, 2013-07-25 at 14:35 -0400, Dhaval Giani wrote:
> On 2013-07-25 2:15 PM, Vyacheslav Dubeyko wrote:
> > On Jul 25, 2013, at 8:42 PM, Taras Glek wrote:
> >
> > [snip]
> >>> To introduce transparent decompression. Let someone else do the compression for us, and supply decompressed data on demand (in this case a read call). Reduces the complexity which would otherwise have to be brought into the filesystem.
> >> The main use for file compression for Firefox(it's useful on Linux desktop too) is to improve IO-throughput and reduce startup latency. In order for compression to be a net win an application should be aware of what is being compressed and what isn't. For example patterns for IO on large libraries (eg 30mb libxul.so) are well suited to compression, but SQLite databases are not. Similarly for our disk cache: images should not be compressed, but javascript should be. Footprint wins are useful on android, but it's the increased IO throughput on crappy storage devices that makes this most attractive.
> >>
> >> In addition of being aware of which files should be compressed, Firefox is aware of patterns of usage of various files it could schedule compression at the most optimal time.
> >>
> >> Above needs tie in nicely with the simplification of not implementing compression at fs-level.
> > There are many filesystems that uses compression as internal technique. And, as I understand, implementation
> > of compression in different Linux kernel filesystem drivers has similar code patterns. So, from my point of view,
> > it makes sense to generalize compression/decompression code in the form of library. The API of such generalized
> > compression kernel library can be used in drivers of different file systems. Also such generalized compression
> > library will simplify support of compression in file system drivers that don't support compression feature currently.
> >
> > Moreover, I think that it is possible to implement compression support on VFS level. Such feature gives
> > opportunity to have compression support for filesystems that don't support compression feature as
> > internal technique.
>
> I am not sure it is a very good idea at this stage.
We are discussing not about good or bad idea. We need to elaborate a
right solution. I think that suggested idea is not clear. Do you want to
support compression in ext4? Or do you want to add some new compression
feature (likewise file-oriented compression)? If we are talking about
compression in ext4 then it needs to use e2compr patch set. Otherwise,
if we are talking about file compression then it is not question of
concrete filesystem. And we need to make implementation on VFS level. It
is only architectural point of view.
> > [snip]
> >> This transparent decompression idea is based on our experience with HFS+. Apple uses the fs-attribute approach. OSX is able to compress application libraries at installation-time, apps remain blissfully unaware but get an extra boost in startup perf.
> >>
> > HFS+ supports compression as internal filesystem technique. It means that HFS+ volume layout has
> > metadata structures for compression support (compressed xattrs or compressed resource forks).
> > So, compression is supported on FS level. As I know, Mac OS X has native decompression support
> > for compressed files but you need to use special tool for compression of files on HFS+. Maybe
> > Mac OS X has internal library that give opportunity to compress application libraries at installation
> > time. But I suppose that it is simply user-space tool or library that uses HFS+ compression support
> > on kernel-space and volume layout levels.
> In addition to what Taras mentioned, there is a similar approach being
> followed here. There is a compression tool to compress files at
> https://github.com/glandium/faulty.lib/blob/master/linker/szip.cpp .
>
Why do you try to implement likewise concept on kernel level? It looks
like you try to move some user-space concept in kernel-space.
With the best regards,
Vyacheslav Dubeyko.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-07-26 8:01 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-24 21:03 [RFC/PATCH 0/2] ext4: Transparent Decompression Support Dhaval Giani
2013-07-24 23:36 ` Jörn Engel
2013-07-25 15:16 ` Dhaval Giani
2013-07-25 15:29 ` Phillip Lougher
2013-07-25 16:42 ` Taras Glek
2013-07-25 17:53 ` Jörn Engel
2013-07-25 19:27 ` Dhaval Giani
2013-07-25 18:15 ` Vyacheslav Dubeyko
2013-07-25 18:35 ` Dhaval Giani
2013-07-26 8:01 ` Vyacheslav Dubeyko [this message]
2013-07-26 13:20 ` Jörn Engel
2013-07-29 23:15 ` Mike Hommey
2013-08-04 0:33 ` Theodore Ts'o
2013-08-04 2:21 ` Jörn Engel
2013-08-04 23:48 ` Dave Chinner
2013-08-07 9:21 ` Andreas Dilger
2013-08-07 15:52 ` Jörn Engel
[not found] ` <51F16B9A.5020006@mozilla.com>
2013-07-26 7:47 ` Vyacheslav Dubeyko
2013-07-25 18:05 ` Jörn Engel
2013-07-25 20:09 ` Zach Brown
2013-07-25 18:46 ` Jörn Engel
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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1374825683.3671.35.camel@slavad-ubuntu \
--to=slava@dubeyko.com \
--cc=dgiani@mozilla.com \
--cc=glandium@mozilla.com \
--cc=joern@logfs.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglek@mozilla.com \
--cc=tytso@mit.edu \
--cc=vdjeric@mozilla.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).