<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:09:24 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-682] optimization for Lustre-tar on completely sparse files.</title>
                <link>https://jira.whamcloud.com/browse/LU-682</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Kit Westneat commented:&lt;/p&gt;

&lt;p&gt;&quot;Older versions of tar have to read in the entire file to figure out&lt;br/&gt;
what parts are sparse. Newer versions should skip that if the # of&lt;br/&gt;
blocks are 0, but I&apos;m not sure if that made it into lustre-tar yet.&lt;/p&gt;

&lt;p&gt;Here&apos;s the patch:&lt;br/&gt;
&lt;a href=&quot;http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00043.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00043.html&lt;/a&gt;&lt;br/&gt;
&quot;&lt;/p&gt;

&lt;p&gt;This hasn&apos;t made it into lustre-tar yet, and may be worth looking into.&lt;/p&gt;</description>
                <environment></environment>
        <key id="11734">LU-682</key>
            <summary>optimization for Lustre-tar on completely sparse files.</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="6" iconUrl="https://jira.whamcloud.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="2">Won&apos;t Fix</resolution>
                                        <assignee username="rhenwood">Richard Henwood</assignee>
                                    <reporter username="rhenwood">Richard Henwood</reporter>
                        <labels>
                    </labels>
                <created>Mon, 12 Sep 2011 15:49:49 +0000</created>
                <updated>Thu, 3 Jan 2013 16:21:40 +0000</updated>
                            <resolved>Thu, 3 Jan 2013 16:21:37 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                            <comments>
                            <comment id="21578" author="rhenwood" created="Thu, 20 Oct 2011 19:07:38 +0000"  >&lt;p&gt;RHEL5 tar is now being built with this patch.&lt;/p&gt;

&lt;p&gt;A patch for RHEL6 tar will ideally be received upstream.&lt;/p&gt;</comment>
                            <comment id="21581" author="rhenwood" created="Thu, 20 Oct 2011 19:33:47 +0000"  >&lt;p&gt;The patch looks something like this:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;--- tar-1.19/orig/src/sparse.c
+++ tar-1.19/src/sparse.c
@@ -216,15 +216,17 @@
   struct tar_stat_info *st = file-&amp;gt;stat_info;
   &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; fd = file-&amp;gt;fd;
   &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; buffer[BLOCKSIZE];
-  size_t count;
+  size_t count = 0;
   off_t offset = 0;
   struct sp_array sp = {0, 0};
 
-  &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!lseek_or_error (file, 0))
-    &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
-
   st-&amp;gt;archive_file_size = 0;
   
+  &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (ST_NBLOCKS (st-&amp;gt;stat) == 0)
+    offset = st-&amp;gt;stat.st_size;
+  &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt;
+    {
+
   &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!tar_sparse_scan (file, scan_begin, NULL))
     &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
 
@@ -254,6 +256,7 @@
 
       offset += count;
     }
+  }
 
   &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (sp.numbytes == 0)
     sp.offset = offset;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="23513" author="rhenwood" created="Tue, 29 Nov 2011 10:54:35 +0000"  >&lt;h3&gt;&lt;a name=&quot;UseCase&quot;&gt;&lt;/a&gt;Use Case&lt;/h3&gt;

&lt;p&gt;A administrator wishes to perform a file-level back up of a MDT.&lt;/p&gt;

&lt;p&gt;A MDT on a production file system may have many millions of files. Each of these file will be completely sparse (ST_NBLOCKS is zero). Tar without this patch will scan large completely sparse files even though the blocks are zero. Scanning large, completely sparse files is time-consuming.&lt;/p&gt;</comment>
                            <comment id="23514" author="rhenwood" created="Tue, 29 Nov 2011 10:55:36 +0000"  >&lt;p&gt;Andreas adds: &quot;This is useful for 1.8.x MDTs right now, and once Fan Yong has implemented OI Scrub it will also be useful for 2.x MDTs.&quot;&lt;/p&gt;</comment>
                            <comment id="23517" author="rhenwood" created="Tue, 29 Nov 2011 12:31:22 +0000"  >&lt;p&gt;It seems that this patch is up-stream in Gnu tar, starting at version: 1.24&lt;/p&gt;</comment>
                            <comment id="23882" author="rhenwood" created="Wed, 7 Dec 2011 17:17:07 +0000"  >&lt;p&gt;I&apos;ve been told that RHEL 6.3 will include the completely sparse file optimization patch. &lt;/p&gt;

&lt;p&gt;Users on 6.0, 6.1 and 6.2 will be able to use tar from 6.3 when it is available.&lt;/p&gt;</comment>
                            <comment id="24633" author="adilger" created="Tue, 13 Dec 2011 15:04:50 +0000"  >&lt;p&gt;This is available in the RHEL5 patched lustre-tar, and will be available in RHEL6.3 as well.&lt;/p&gt;</comment>
                            <comment id="40134" author="nrutman" created="Wed, 6 Jun 2012 12:30:42 +0000"  >&lt;p&gt;Doe this mean WC&apos;s tar should be replaced by mainstream tar 1.24?&lt;/p&gt;</comment>
                            <comment id="40148" author="nrutman" created="Wed, 6 Jun 2012 15:26:13 +0000"  >&lt;p&gt;These patches are in RHEL 6.3 beta tar 1.23-7&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;optimization for -c --sparse for completely sparse files  (#760665)&lt;br/&gt;
 Patch12: tar-1.23-optimize-packing-entirely-sparse-files.patch&lt;/li&gt;
	&lt;li&gt;fix for filename corruption when --sparse and --posix options are used. (#656834)&lt;br/&gt;
 Patch9: tar-1.23-long-name-corruption.patch&lt;/li&gt;
&lt;/ol&gt;
</comment>
                            <comment id="40213" author="rhenwood" created="Thu, 7 Jun 2012 15:01:25 +0000"  >&lt;p&gt;I haven&apos;t seen the beta, but I have had this confirmed by Red Hat - tar will be 1.23+patches for sparse files (among other I assume).&lt;/p&gt;

&lt;p&gt;Once 6.3 is available, then you will have more choices for RHEL6 users: use vanilla Red Hat tar from 6.3, use WC tar, or roll your own gnu tar &amp;gt;1.24.&lt;/p&gt;

&lt;p&gt;WC tar was created specifically to target RHEL5 with the requirement: we want to build on the same platform we run on.&lt;/p&gt;

&lt;p&gt;WC tar achieves this. If I remember correctly: The problem with bumping the gun tar version is that more recent (&amp;gt;1.23) versions, that have sparse and other patches included, require a version of autoconf (&amp;gt;2.60) that is not readily available on RHEL5.&lt;/p&gt;</comment>
                            <comment id="49905" author="rhenwood" created="Thu, 3 Jan 2013 16:21:23 +0000"  >&lt;p&gt;No longer relevant: tar with sparse is used to file-level backup MDT. Restoring a MDT from a file-level backup is only supported on 2.3 and beyond. 2.3 only supports rhel6. rhel6 tar distribution includes the sparse patch.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="11172">LU-417</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvy7z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9728</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>