<!--
RSS generated by JIRA (5.2.7#850-sha1:b2af0c8dc8537b36121c6a579fabbdf79fc919e5) at Tue May 21 17:24:21 UTC 2013

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 add field=key&field=summary to the URL of your request.
For example:
http://www.doctrine-project.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+DCOM+AND+resolution+%3D+Unresolved+AND+component+%3D+Caching+ORDER+BY+priority+DESC&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://www.doctrine-project.org/jira/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Doctrine Project</title>
        <link>http://www.doctrine-project.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+DCOM+AND+resolution+%3D+Unresolved+AND+component+%3D+Caching+ORDER+BY+priority+DESC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="2" total="2"/>
                <build-info>
            <version>5.2.7</version>
            <build-number>850</build-number>
            <build-date>21-02-2013</build-date>
        </build-info>
<item>
            <title>[DCOM-128] RedisCache uses IGBINARY which is not always available</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-128</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;The RedisCache uses Redis::SERIALIZER_IGBINARY. See &lt;a href=&quot;https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Cache/RedisCache.php&quot; class=&quot;external-link&quot;&gt;https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Cache/RedisCache.php&lt;/a&gt; line 47.&lt;/p&gt;

&lt;p&gt;The problem is that the php Redis extension can be compiled without IGBINARY support. In that case, this code causes a fatal error because the constant does not exist.&lt;/p&gt;

&lt;p&gt;The DotDeb package of php5-redis (often used on Debian systems) for example comes compiled without IGBINARY support.&lt;/p&gt;

&lt;p&gt;The code should probably check if the constant exists. If not, the default to Redis::SERIALIZER_PHP&lt;/p&gt;</description>
                <environment></environment>
            <key id="14151">DCOM-128</key>
            <summary>RedisCache uses IGBINARY which is not always available</summary>
                <type id="2" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="sandermarechal">Sander Marechal</reporter>
                        <labels>
                    </labels>
                <created>Sat, 20 Oct 2012 17:04:02 +0000</created>
                <updated>Sat, 20 Oct 2012 17:04:02 +0000</updated>
                                    <version>2.3</version>
                                                <component>Caching</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>

<item>
            <title>[DCOM-130] Paths in Doctrine\Common\Cache\FileCache could create large directory indexes</title>
                <link>http://www.doctrine-project.org/jira/browse/DCOM-130</link>
                <project id="10043" key="DCOM">Doctrine Common</project>
                        <description>&lt;p&gt;The way paths are created within FileCache currently, there is a theoretical maximum of 16^12 directories in the cache directory, which is quite a large number. Usually schemes like this are used to restrict the number of files in one directory.&lt;/p&gt;

&lt;p&gt;Comparing with git, for example, the dirs are arranged&lt;/p&gt;

&lt;p&gt;00/&lt;br/&gt;
1c/&lt;br/&gt;
...&lt;br/&gt;
ff/&lt;/p&gt;

&lt;p&gt;and then the object store within those directories, which is a lot more manageable, say if you happen to type ls in the cache directory, you will get a maximum listing of 256 dirs. PhpThumb does something similar when caching images.&lt;/p&gt;

&lt;p&gt;How about something like this for getFilename():&lt;/p&gt;

&lt;p&gt;    $idHash = md5($id);&lt;br/&gt;
    $path = substr($idHash, 0, 2) . DIRECTORY_SEPARATOR . substr($idHash, 2, 2) . DIRECTORY_SEPARATOR . substr($idHash, 4);&lt;br/&gt;
    $path = $this-&amp;gt;directory . DIRECTORY_SEPARATOR . $path;&lt;/p&gt;

&lt;p&gt;    return $path . $id . $this-&amp;gt;extension;&lt;/p&gt;

&lt;p&gt;Not nearly so elegant, but I think this has better properties for the file system. Also I would be tempted to use one of the sha family hashes and not to include the $id within the filename, but perhaps this is helpful for debugging?&lt;/p&gt;</description>
                <environment>Any</environment>
            <key id="14159">DCOM-130</key>
            <summary>Paths in Doctrine\Common\Cache\FileCache could create large directory indexes</summary>
                <type id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="4" iconUrl="http://www.doctrine-project.org/jira/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.doctrine-project.org/jira/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="beberlei">Benjamin Eberlei</assignee>
                                <reporter username="terrapin">R Churchill</reporter>
                        <labels>
                    </labels>
                <created>Tue, 23 Oct 2012 01:05:16 +0000</created>
                <updated>Fri, 10 May 2013 15:45:04 +0000</updated>
                                    <version>2.3</version>
                                                <component>Caching</component>
                        <due></due>
                    <votes>0</votes>
                        <watches>2</watches>
                        <comments>
                    <comment id="20267" author="jhigman" created="Fri, 10 May 2013 15:36:36 +0000"  >&lt;p&gt;We hit this problem in a live system - with a lot of cached items, the number of subdirectories that FileCache creates can exceed the number that an ext3 filesystem allows in a single directory (about 32000). &lt;/p&gt;

&lt;p&gt;After that, an attempt to cache a new item can get an error like this:&lt;/p&gt;

&lt;p&gt;    mkdir() &lt;span class=&quot;error&quot;&gt;&amp;#91;function.mkdir&amp;#93;&lt;/span&gt;: Too many links&lt;/p&gt;


&lt;p&gt;Our solution was similar to that suggested: &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;

    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; function getFilename($id) {
        $path = implode(str_split(md5($id), 2), DIRECTORY_SEPARATOR);
        $path = $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;directory . DIRECTORY_SEPARATOR . $path;
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; $path . DIRECTORY_SEPARATOR . $id . $&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;-&amp;gt;extension;
    }

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It splits the md5 of the item id into parts of length 2, rather than the original 12. This creates a deeply nested structure, but which won&apos;t ever exceed the limit on number of subdirectories in any one directory. It&apos;s the same subdirectory pattern used by default by Apache mod_disk_cache, as well.&lt;/p&gt;
</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
        </item>
</channel>
</rss>