<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:42:15 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-79922] Investigate solutions to the fsync (lock:true) starvation scenario</title>
                <link>https://jira.mongodb.org/browse/SERVER-79922</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;With &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-78149&quot; title=&quot;Implement the mongos fsync (lock : true) command&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-78149&quot;&gt;&lt;del&gt;SERVER-78149&lt;/del&gt;&lt;/a&gt;, users can now issue fsync(lock: true) through mongos which in turn acquires a Global S lock on all the shards. However, the mongos fsync (lock:true) request has a default of a 90s timeout and this may lead to scenarios where the fsyncLock request is never granted, especially when transactions are being heavily used by the users or internally.&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="2414900">SERVER-79922</key>
            <summary>Investigate solutions to the fsync (lock:true) starvation scenario</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="nandini.bhartiya@mongodb.com">Nandini Bhartiya</assignee>
                                    <reporter username="nandini.bhartiya@mongodb.com">Nandini Bhartiya</reporter>
                        <labels>
                            <label>cs-subteam1</label>
                            <label>sharding-nyc-subteam1</label>
                    </labels>
                <created>Fri, 11 Aug 2023 02:54:15 +0000</created>
                <updated>Mon, 18 Dec 2023 17:47:33 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="5950504" author="josef.ahmad" created="Thu, 14 Dec 2023 11:50:33 +0000"  >&lt;p&gt;Can this starvation occur anymore now that we&apos;ve removed the deadlock condition via &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66340&quot; title=&quot;Improve distributed transaction commit locking behavior&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66340&quot;&gt;&lt;del&gt;SERVER-66340&lt;/del&gt;&lt;/a&gt;?&lt;/p&gt;</comment>
                            <comment id="5643462" author="JIRAUSER1268284" created="Fri, 18 Aug 2023 15:57:41 +0000"  >&lt;p&gt;A possible solution that &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=gregory.noma%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;gregory.noma@mongodb.com&quot;&gt;gregory.noma@mongodb.com&lt;/a&gt; &amp;amp; I discussed was:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;To create a new global resource for fsync(as done for the setFCV command (in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-65821&quot; title=&quot;Deadlock during setFCV when there are prepared transactions that have not persisted commit/abort decision&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-65821&quot;&gt;&lt;del&gt;SERVER-65821&lt;/del&gt;&lt;/a&gt;)).&lt;/li&gt;
	&lt;li&gt;All the requests that need a gobal lock in IX/X acquire this in the IX mode (in the global lock ctor).&lt;/li&gt;
	&lt;li&gt;The fsync command acquires the lock on the new resource in S mode (&lt;b&gt;not in IX&lt;/b&gt; else, it will still be [compatible with other requests|&lt;a href=&quot;https://github.com/10gen/mongo/blob/a78040a9e614a92220c31ec12360d6d47b8a8fbd/src/mongo/db/catalog/README.md#lock-compatibility-matrix&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;README.md&lt;/a&gt;]), thereby not allowing any &lt;em&gt;new transactions&lt;/em&gt;&#160;to start and instead queue behind the fsync lock request.&lt;/li&gt;
	&lt;li&gt;The transaction coordinator and the journal flusher threads &lt;em&gt;opt out&lt;/em&gt; of the new lock resource, thereby allowing an in-flight two phase transactions to commit/abort.&lt;/li&gt;
	&lt;li&gt;Once the fsync command has acquired the lock on the new resource, it can then request for the Global lock in MODE_S and it will be granted since it will be enqueued at the front on the lock queue.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="5638549" author="JIRAUSER1268284" created="Wed, 16 Aug 2023 18:20:34 +0000"  >&lt;p&gt;Adding this ticket as a dependent on &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66340&quot; title=&quot;Improve distributed transaction commit locking behavior&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66340&quot;&gt;&lt;del&gt;SERVER-66340&lt;/del&gt;&lt;/a&gt; and&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66341&quot; title=&quot;Improve journal flusher locking behavior&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66341&quot;&gt;&lt;del&gt;SERVER-66341&lt;/del&gt;&lt;/a&gt;,as there is no feasible solution for the fsync(lock:true) case as there was with the setFCV command in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-65821&quot; title=&quot;Deadlock during setFCV when there are prepared transactions that have not persisted commit/abort decision&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-65821&quot;&gt;&lt;del&gt;SERVER-65821&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="2043274">SERVER-66340</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 14 Dec 2023 11:50:33 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-66340'>SERVER-66340</a></s>]]></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>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>nandini.bhartiya@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            7 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>josef.ahmad@mongodb.com</customfieldvalue>
            <customfieldvalue>nandini.bhartiya@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2lv87:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i23xdk:</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_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|i2lhdj:</customfieldvalue>

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