<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:26:35 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-74133] Spilling to TemporaryRecordStores in multi-doc transactions does not work as expected</title>
                <link>https://jira.mongodb.org/browse/SERVER-74133</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Some query stages implement spilling by writing to a WT table. If this happens inside the context of a user multi-doc transaction, these writes will be included in the same storage engine transaction. As uncommitted writes are not evictable to disk by WiredTiger, this has the consequence of filling up WiredTiger&apos;s dirty cache with un-evictable data.&lt;/p&gt;

&lt;p&gt;This has a few problems:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Spilling in a multi-doc transaction will create negative performance consequences and potentially stall any concurrent write workload, as we can pollute the WT cache with un-evictable data&lt;/li&gt;
	&lt;li&gt;Because no spilling is happening, we actually are still imposing a limit based on the size of the WT cache, meaning that user queries will fail if they spill enough data.&lt;/li&gt;
	&lt;li&gt;We&apos;re running into WiredTiger bugs because we drop the tables before the transactions commit/abort (&lt;a href=&quot;https://jira.mongodb.org/browse/WT-10576&quot; title=&quot;Return EBUSY on forced drop if there is an active transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-10576&quot;&gt;WT-10576&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I see two solutions:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;We can ban spilling in multi-doc transactions until we come up with a better solution&lt;/li&gt;
	&lt;li&gt;Spill in a separate storage transaction. We have to be incredibly careful here because this can cause deadlocks (see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-61116&quot; title=&quot;Audit and add assertions against using multiple WT_SESSIONs on the same thread&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-61116&quot;&gt;SERVER-61116&lt;/a&gt;), and would need close collaboration with Storage Execution. To make this work, we would need to do something similar to what we did for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-62650&quot; title=&quot;RecordStore RecordId initialization can deadlock transactions with cache eviction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-62650&quot;&gt;&lt;del&gt;SERVER-62650&lt;/del&gt;&lt;/a&gt;. In the spilling transaction, we would always need to impose a timeout on how long it will block on cache eviction. Otherwise, we have to force the user&apos;s transaction to roll-back.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="2267514">SERVER-74133</key>
            <summary>Spilling to TemporaryRecordStores in multi-doc transactions does not work as expected</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="backlog-query-execution">Backlog - Query Execution</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                            <label>query-product-scope-2</label>
                            <label>query-product-urgency-3</label>
                            <label>query-product-value-2</label>
                    </labels>
                <created>Fri, 17 Feb 2023 10:20:41 +0000</created>
                <updated>Fri, 13 Oct 2023 13:05:31 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>19</watches>
                                                                                                                <comments>
                            <comment id="5331329" author="garaudy.etienne" created="Thu, 6 Apr 2023 21:38:32 +0000"  >&lt;p&gt;From a product standpoint, we would love to be able to support larger transactions. The downsides of spilling to disk that are outlined above, make it less ideal. &lt;/p&gt;



</comment>
                            <comment id="5324382" author="christopher.harris" created="Tue, 4 Apr 2023 18:55:18 +0000"  >&lt;p&gt;Thanks - I&apos;m looking into what the expectations are for transactions in the future&lt;/p&gt;</comment>
                            <comment id="5324309" author="kyle.suarez" created="Tue, 4 Apr 2023 18:37:15 +0000"  >&lt;p&gt;Sending a friendly ping to &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=christopher.harris%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;christopher.harris@mongodb.com&quot;&gt;christopher.harris@mongodb.com&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=joe.sack%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;joe.sack@mongodb.com&quot;&gt;joe.sack@mongodb.com&lt;/a&gt; to please discuss this at your next product triage meeting.&lt;/p&gt;</comment>
                            <comment id="5226044" author="david.storch" created="Thu, 23 Feb 2023 18:18:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kyle.suarez%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;kyle.suarez@mongodb.com&quot;&gt;kyle.suarez@mongodb.com&lt;/a&gt; sending this to Query Director Triage.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2266249">SERVER-74085</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2254504">WT-10576</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2448728">SERVER-81331</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25125"><![CDATA[Query Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5006R00001wP8GzQAK]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 23 Feb 2023 18:18:12 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        43 weeks, 6 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>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>nuno.costa@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            43 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-query-execution</customfieldvalue>
            <customfieldvalue>christopher.harris@mongodb.com</customfieldvalue>
            <customfieldvalue>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>garaudy.etienne@mongodb.com</customfieldvalue>
            <customfieldvalue>kyle.suarez@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1wifz:</customfieldvalue>

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

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