<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:34:43 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>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-54863] Support noCursorTimeout for listCollections command</title>
                <link>https://jira.mongodb.org/browse/SERVER-54863</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/listCollections/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.mongodb.com/manual/reference/command/listCollections/&lt;/a&gt; doesn&apos;t have a way to specify noCursorTimeout. &lt;/p&gt;

&lt;p&gt;In CLOUDP-51006, our use case is to loop through all the collections and process them as we go. However processing each collection might take a long time so we might get hit with a cursor idle timeout. &lt;/p&gt;

&lt;p&gt;As a workaround today, we are storing all the collections in memory. But that&apos;s inefficient for customers with a huge amount of collections.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1636078">SERVER-54863</key>
            <summary>Support noCursorTimeout for listCollections command</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/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="12300">Won&apos;t Do</resolution>
                                        <assignee username="james.wahlin@mongodb.com">James Wahlin</assignee>
                                    <reporter username="lawrence.tan@mongodb.com">Lawrence Tan</reporter>
                        <labels>
                    </labels>
                <created>Mon, 1 Mar 2021 18:14:05 +0000</created>
                <updated>Fri, 26 Mar 2021 15:05:33 +0000</updated>
                            <resolved>Fri, 26 Mar 2021 15:04:28 +0000</resolved>
                                                                                        <votes>1</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="3686195" author="james.wahlin@10gen.com" created="Fri, 26 Mar 2021 15:04:28 +0000"  >&lt;p&gt;Closing ticket as we do not plan to add noCursorTimeout for the listCollections command. &lt;/p&gt;</comment>
                            <comment id="3685083" author="lawrence.tan" created="Thu, 25 Mar 2021 23:01:13 +0000"  >&lt;p&gt;Thanks &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=divjot.arora&quot; class=&quot;user-hover&quot; rel=&quot;divjot.arora&quot;&gt;divjot.arora&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=james.wahlin&quot; class=&quot;user-hover&quot; rel=&quot;james.wahlin&quot;&gt;james.wahlin&lt;/a&gt;! &lt;/p&gt;

&lt;p&gt;We do need to support &amp;lt; 5.0. Doesn&apos;t sound like we have a simple solution. I think we can close this ticket for now and revisit later if needed.&lt;/p&gt;</comment>
                            <comment id="3677215" author="james.wahlin@10gen.com" created="Mon, 22 Mar 2021 18:19:16 +0000"  >&lt;p&gt;Another potential not-yet-implemented solution would be to implement &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16521&quot; title=&quot;Make listCollections() an aggregation source&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16521&quot;&gt;SERVER-16521&lt;/a&gt;, which requests a $listCollections aggregation source/stage. This would allow for alternate pagination schemes that don&apos;t rely on maintaining an open cursor.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=lawrence.tan&quot; class=&quot;user-hover&quot; rel=&quot;lawrence.tan&quot;&gt;lawrence.tan&lt;/a&gt; let me know if you would like a call to discuss. I think there is a reasonable solution for 5.0 but how to handle server-side for previous versions is not clear.&lt;/p&gt;</comment>
                            <comment id="3661450" author="lawrence.tan" created="Thu, 11 Mar 2021 23:55:48 +0000"  >&lt;p&gt;It seems like refreshSessions require passing in session UUIDs? It doesn&apos;t seem like listCollections return any session UUID: &lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/listCollections/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.mongodb.com/manual/reference/command/listCollections/&lt;/a&gt;. &lt;/p&gt;</comment>
                            <comment id="3657485" author="james.wahlin@10gen.com" created="Wed, 10 Mar 2021 18:36:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=lawrence.tan&quot; class=&quot;user-hover&quot; rel=&quot;lawrence.tan&quot;&gt;lawrence.tan&lt;/a&gt; / &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=craig.schwarz&quot; class=&quot;user-hover&quot; rel=&quot;craig.schwarz&quot;&gt;craig.schwarz&lt;/a&gt; / &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jacob.lu&quot; class=&quot;user-hover&quot; rel=&quot;jacob.lu&quot;&gt;jacob.lu&lt;/a&gt; - I have a proposal for an alternate way of handling this issue.&lt;/p&gt;

&lt;p&gt;As you mention, traditionally users have relied on &quot;noCursorTime&quot; to address the case where there may be 10 or more minutes between cursor requests. This solution suffers from the risk that a cursor may be orphaned and will reside in memory until server restart.&lt;/p&gt;

&lt;p&gt;For MongoDB 5.0 we removed the 10 minute cursor timeout mechanism for any operation that is run under a session. This work was done under &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-6036&quot; title=&quot;Disable cursor timeout for cursors that belong to a session&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-6036&quot;&gt;&lt;del&gt;SERVER-6036&lt;/del&gt;&lt;/a&gt;. I believe almost all operations these days are run under sessions (unless you have a really old version of a driver) and sessions come with a 30 minute timeout which is reset on session use Additionally, there is a &lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/refreshSessions/#dbcmd.refreshSessions&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;refreshSessions&lt;/a&gt; command that can be run to explicitly reset the timeout clock to prevent timeout. Would this mechanism work for your use case?&lt;/p&gt;</comment>
                            <comment id="3642987" author="jacob.lu" created="Tue, 2 Mar 2021 20:30:40 +0000"  >&lt;p&gt;Perhaps one workaround is to batch up the query with the filter on &quot;info.uuid&quot; field.&lt;/p&gt;</comment>
                            <comment id="3642933" author="craig.schwarz" created="Tue, 2 Mar 2021 20:06:33 +0000"  >&lt;p&gt;the other thing I was unsure of working with this command - even though it returns a cursor it seemed like it was only ever returning all the collections in one batch&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 2 Mar 2021 20:06:33 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 45 weeks, 5 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 45 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>craig.schwarz@mongodb.com</customfieldvalue>
            <customfieldvalue>jacob.lu@mongodb.com</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
            <customfieldvalue>lawrence.tan@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hyxa7j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hyincf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="4467">Query Optimization 2021-03-22</customfieldvalue>
    <customfieldvalue id="4469">Query Optimization 2021-04-05</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hywwgn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>