<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:39:57 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-79048] move retryable findAndModify image logic out of OpObserverImpl</title>
                <link>https://jira.mongodb.org/browse/SERVER-79048</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently the logic for writing retryable findAndModify images to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/f489033c0544267767fbf40ebbfe983bf527f592/src/mongo/db/namespace_string_reserved.def.h#L169&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;config.image_collection&lt;/a&gt; is embedded in the OpObserverImpl methods for writing the oplog entries (See &lt;a href=&quot;https://github.com/mongodb/mongo/blob/f489033c0544267767fbf40ebbfe983bf527f592/src/mongo/db/op_observer/op_observer_impl.cpp#L1010&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;update example&lt;/a&gt;). To support future work in streamlining the OpObserverImpl oplog generation logic (see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-74100&quot; title=&quot;Streamline logical branches in opObserverImpl::onDelete&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-74100&quot;&gt;SERVER-74100&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-74121&quot; title=&quot;Streamline logical branches in opObserverImpl::onUpdate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-74121&quot;&gt;SERVER-74121&lt;/a&gt;), it would help to extract the findAndModify logic into a separate OpObserver implementation. We had recently completed a similar exercise for change streams pre-images in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-78310&quot; title=&quot;move change stream pre-image logic out of OpObserverImpl&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-78310&quot;&gt;&lt;del&gt;SERVER-78310&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2394626">SERVER-79048</key>
            <summary>move retryable findAndModify image logic out of OpObserverImpl</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="13201">Fixed</resolution>
                                        <assignee username="benety.goh@mongodb.com">Benety Goh</assignee>
                                    <reporter username="benety.goh@mongodb.com">Benety Goh</reporter>
                        <labels>
                    </labels>
                <created>Tue, 18 Jul 2023 13:50:22 +0000</created>
                <updated>Sun, 29 Oct 2023 21:18:49 +0000</updated>
                            <resolved>Mon, 31 Jul 2023 14:45:51 +0000</resolved>
                                                    <fixVersion>7.1.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="5603751" author="xgen-internal-githook" created="Tue, 1 Aug 2023 01:37:35 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-79048&quot; title=&quot;move retryable findAndModify image logic out of OpObserverImpl&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-79048&quot;&gt;&lt;del&gt;SERVER-79048&lt;/del&gt;&lt;/a&gt; move findAndModify image collection writes for prepared transactions from OpObserverImpl to FindAndModifyImagesOpObserver&lt;br/&gt;
Branch: minh.luu-no_compile_sys-perf&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/27ac18033606cafac1b0742ece4c3dcc64c653b3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/27ac18033606cafac1b0742ece4c3dcc64c653b3&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5601711" author="xgen-internal-githook" created="Mon, 31 Jul 2023 13:17:48 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-79048&quot; title=&quot;move retryable findAndModify image logic out of OpObserverImpl&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-79048&quot;&gt;&lt;del&gt;SERVER-79048&lt;/del&gt;&lt;/a&gt; move findAndModify image collection writes for prepared transactions from OpObserverImpl to FindAndModifyImagesOpObserver&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/27ac18033606cafac1b0742ece4c3dcc64c653b3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/27ac18033606cafac1b0742ece4c3dcc64c653b3&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5600816" author="xgen-internal-githook" created="Sun, 30 Jul 2023 23:13:30 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-79048&quot; title=&quot;move retryable findAndModify image logic out of OpObserverImpl&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-79048&quot;&gt;&lt;del&gt;SERVER-79048&lt;/del&gt;&lt;/a&gt; move findAndModify image collection writes for unprepared transactions from OpObserverImpl to FindAndModifyImagesOpObserver&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ee82492d3a476e833107bedd3b228c835e35852c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ee82492d3a476e833107bedd3b228c835e35852c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5600685" author="xgen-internal-githook" created="Sun, 30 Jul 2023 14:25:24 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-79048&quot; title=&quot;move retryable findAndModify image logic out of OpObserverImpl&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-79048&quot;&gt;&lt;del&gt;SERVER-79048&lt;/del&gt;&lt;/a&gt; move findAndModify image collection writes for deletes from OpObserverImpl to FindAndModifyImagesOpObserver&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/bc9c35a8bd529c448d6daa8b5da5123ef89e9875&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/bc9c35a8bd529c448d6daa8b5da5123ef89e9875&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5600424" author="xgen-internal-githook" created="Sat, 29 Jul 2023 20:28:13 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-79048&quot; title=&quot;move retryable findAndModify image logic out of OpObserverImpl&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-79048&quot;&gt;&lt;del&gt;SERVER-79048&lt;/del&gt;&lt;/a&gt; move findAndModify image collection writes for updates from OpObserverImpl to FindAndModifyImagesOpObserver&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f61254d4216ccb667cff06f8833b26640513946a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f61254d4216ccb667cff06f8833b26640513946a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5596921" author="xgen-internal-githook" created="Thu, 27 Jul 2023 21:20:50 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-79048&quot; title=&quot;move retryable findAndModify image logic out of OpObserverImpl&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-79048&quot;&gt;&lt;del&gt;SERVER-79048&lt;/del&gt;&lt;/a&gt; add stub FindAndModifyImagesOpObserver&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ac9905490003c08f825a39d591001397376c2cf8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ac9905490003c08f825a39d591001397376c2cf8&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2396757">SERVER-79148</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2396759">SERVER-79149</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2399658">SERVER-79275</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2266508">SERVER-74100</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2266827">SERVER-74121</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2373957">SERVER-78310</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>6.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_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 25 Jul 2023 14:03:11 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        27 weeks, 2 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-2780</customfieldvalue>
                        </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>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            27 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>benety.goh@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2ie7b:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i20j54:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="7181">Execution NAMR Team 2023-07-24</customfieldvalue>
    <customfieldvalue id="7182">Execution NAMR Team 2023-08-07</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|i2i0cn:</customfieldvalue>

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