Date: Wed, 21 Jul 2004 17:14:27 +0200 From: Daniel Lang <dl@leo.org> To: Jan Grant <Jan.Grant@bristol.ac.uk> Cc: current@freebsd.org Subject: Re: NEW TAR Message-ID: <20040721151427.GC54664@atrbg11.informatik.tu-muenchen.de> In-Reply-To: <Pine.GSO.4.61.0407211440210.28037@mail.ilrt.bris.ac.uk> References: <40F963D8.6010201@freebsd.org> <20040719060730.GA87697@nagual.pp.ru> <20040720081051.GB3001@cirb503493.alcatel.com.au> <B82A97D5-DA91-11D8-B0C4-000A95C893E4@lassitu.de> <Pine.GSO.4.61.0407211440210.28037@mail.ilrt.bris.ac.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Jan Grant wrote on Wed, Jul 21, 2004 at 02:44:42PM +0100: [..] > You're correct, in that filesystem semantics don't require an archiver > to recreate holes. There are storage efficiency gains to be made in > identifying holes, that's true - particularly in the case of absolutely > whopping but extremely sparse files. In those cases, a simple > userland-view-of-the-filesystem-semantics approach to ideentifying areas > that _might_ be holes (just for archive efficiency) can still be > expensive and might involve the scanning of multiple gigabytes of > "virtual" zeroes. > > Solaris offers an fcntl to identify holes (IIRC) for just this purpose. > If the underlying filesystem can't be made to support it, there's an > efficiency loss but otherwise it's no great shakes. I don't get it. I assume, that for any consumer it is totally transparent if possibly existing chunks of 0-bytes are actually blocks full of zeroes or just non-allocated blocks, correct? Second, it is true, that there is a gain in terms of occupied disk space, if chunks of zeroes are not allocated at all, correct? So, from my point of view it is totally irrelevant, if a sparse file is archived and then extracted, if the areas, which contain zeroes are exactly in the same manner consisting of unallocated blocks or not. So, all I guess an archiver must do is: - read the file - scan the file for consecutive blocks of zeroes - archive these blocks in an efficient way - on extraction, create a sparse file with the previously identified empty blocks, regardless if these blocks have been 'sparse' blocks in the original file or not. I do not see, why it is important if the original file was sparse at all or maybe in different places. Cheers, Daniel -- IRCnet: Mr-Spock - My name is Pentium of Borg, division is futile, you will be approximated. - Daniel Lang * dl@leo.org * +49 89 289 18532 * http://www.leo.org/~dl/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040721151427.GC54664>