<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:19:37 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-28992] Cleanup mongos write commands execution</title>
                <link>https://jira.mongodb.org/browse/SERVER-28992</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The mongos write commands execution is overly complex, manages &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.6/src/mongo/s/write_ops/batch_write_op.cpp#L809&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;bare pointers&lt;/a&gt; and swaths of memory. This ticket is to combine any miscellaneous cleanup which can be done to simplify them.&lt;/p&gt;</description>
                <environment></environment>
        <key id="377933">SERVER-28992</key>
            <summary>Cleanup mongos write commands execution</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="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="kaloian.manassiev@mongodb.com">Kaloian Manassiev</assignee>
                                    <reporter username="kaloian.manassiev@mongodb.com">Kaloian Manassiev</reporter>
                        <labels>
                    </labels>
                <created>Wed, 26 Apr 2017 21:25:36 +0000</created>
                <updated>Mon, 30 Oct 2023 23:17:10 +0000</updated>
                            <resolved>Fri, 22 Dec 2017 16:27:08 +0000</resolved>
                                                    <fixVersion>3.6.2</fixVersion>
                    <fixVersion>3.7.1</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1761670" author="xgen-internal-githook" created="Fri, 29 Dec 2017 19:59:41 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;username&apos;: &apos;kaloianm&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28992&quot; title=&quot;Cleanup mongos write commands execution&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28992&quot;&gt;&lt;del&gt;SERVER-28992&lt;/del&gt;&lt;/a&gt; Cleanup and remove unused code from write commands&lt;/p&gt;

&lt;p&gt;No functional changes, just getting rid of some unnecessary overhead.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Get rid of the extra TargetedBatchSizeMap during write command processing&lt;/li&gt;
	&lt;li&gt;Do not use pointers in the write commands error tracking&lt;/li&gt;
	&lt;li&gt;Remove unused code from the commands parsing&lt;/li&gt;
	&lt;li&gt;Get rid of unused code from the write commands tests&lt;/li&gt;
	&lt;li&gt;Make the write commands targeter return actual ShardEndpoint(s) instead of populating arrays of pointers. This saves both on memory allocations and makes the code simpler to follow.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;(cherry picked from commit 890051d8166e668442aff70cfcde3cb71ae6115f)&lt;br/&gt;
(cherry picked from commit 10e3ce2d905ca3afc1e5949da2daa3353740171a)&lt;br/&gt;
(cherry picked from commit 98f30b75b31c54464d5a907f435c15121a6c5353)&lt;br/&gt;
Branch: v3.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1b15f47f9a53616394a7f4fde4796be499e7b9e6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1b15f47f9a53616394a7f4fde4796be499e7b9e6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1761481" author="xgen-internal-githook" created="Fri, 29 Dec 2017 16:16:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;username&apos;: &apos;kaloianm&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28992&quot; title=&quot;Cleanup mongos write commands execution&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28992&quot;&gt;&lt;del&gt;SERVER-28992&lt;/del&gt;&lt;/a&gt; Make the write commands targeter return actual ShardEndpoint(s)&lt;/p&gt;

&lt;p&gt;... instead of populating arrays of pointers. This saves both on memory&lt;br/&gt;
allocations and makes the code simpler to follow.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/98f30b75b31c54464d5a907f435c15121a6c5353&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/98f30b75b31c54464d5a907f435c15121a6c5353&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1761480" author="xgen-internal-githook" created="Fri, 29 Dec 2017 16:16:00 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;username&apos;: &apos;kaloianm&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28992&quot; title=&quot;Cleanup mongos write commands execution&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28992&quot;&gt;&lt;del&gt;SERVER-28992&lt;/del&gt;&lt;/a&gt; Get rid of unused code from the write commands tests&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/10e3ce2d905ca3afc1e5949da2daa3353740171a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/10e3ce2d905ca3afc1e5949da2daa3353740171a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1758632" author="xgen-internal-githook" created="Fri, 22 Dec 2017 16:23:19 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;kaloianm&apos;, &apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28992&quot; title=&quot;Cleanup mongos write commands execution&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28992&quot;&gt;&lt;del&gt;SERVER-28992&lt;/del&gt;&lt;/a&gt; Cleanup and remove unused code from write commands&lt;/p&gt;

&lt;p&gt;No functional changes, just getting rid of some unnecessary overhead.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Get rid of the extra TargetedBatchSizeMap during write command processing&lt;/li&gt;
	&lt;li&gt;Do not use pointers in the write commands error tracking&lt;/li&gt;
	&lt;li&gt;Remove unused code from the commands parsing&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/890051d8166e668442aff70cfcde3cb71ae6115f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/890051d8166e668442aff70cfcde3cb71ae6115f&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="1560880" author="xgen-internal-githook" created="Sat, 29 Apr 2017 12:57:57 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28992&quot; title=&quot;Cleanup mongos write commands execution&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28992&quot;&gt;&lt;del&gt;SERVER-28992&lt;/del&gt;&lt;/a&gt; Make BatchWriteOp contain a vector of WriteOp&lt;/p&gt;

&lt;p&gt;... instead of a dynamically allocated array and in-place&lt;br/&gt;
construction/destruction.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2e8e60bfef83ac9c7bf494b0f80977686cb1b772&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2e8e60bfef83ac9c7bf494b0f80977686cb1b772&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1559422" author="xgen-internal-githook" created="Thu, 27 Apr 2017 17:20:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28992&quot; title=&quot;Cleanup mongos write commands execution&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28992&quot;&gt;&lt;del&gt;SERVER-28992&lt;/del&gt;&lt;/a&gt; Fold BatchWriteStats into BatchWriteOp&lt;/p&gt;

&lt;p&gt;There is no need for that structure to be dynamically allocated or to even&lt;br/&gt;
be a separate structure.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e7fa2c203c9790377f84f9d2e2c941f0e3d24007&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e7fa2c203c9790377f84f9d2e2c941f0e3d24007&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1559421" author="xgen-internal-githook" created="Thu, 27 Apr 2017 17:20:47 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;kaloianm&apos;, u&apos;name&apos;: u&apos;Kaloian Manassiev&apos;, u&apos;email&apos;: u&apos;kaloian.manassiev@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28992&quot; title=&quot;Cleanup mongos write commands execution&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28992&quot;&gt;&lt;del&gt;SERVER-28992&lt;/del&gt;&lt;/a&gt; Cleanup write commands execution&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Make BatchWriteExec not be a class, but only have a single static function&lt;/li&gt;
	&lt;li&gt;Remove dependency of BatchedUpsertDetail on BSONSerializable&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/9ecac7ca6873e804fb6f66282f1e699e9c228c8f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/9ecac7ca6873e804fb6f66282f1e699e9c228c8f&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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>4.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="15141"><![CDATA[v3.6]]></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>Thu, 27 Apr 2017 17:20:47 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 6 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_14262" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 22 Dec 2017 00:00:00 +0000</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>
                            6 years, 6 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht6gxb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hraiqv:</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="1616">Sharding 2017-05-08</customfieldvalue>
    <customfieldvalue id="1704">Sharding 2017-05-29</customfieldvalue>
    <customfieldvalue id="1705">Sharding 2017-06-19</customfieldvalue>
    <customfieldvalue id="2051">Sharding 2018-01-01</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_14261" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 26 Apr 2017 00:00:00 +0000</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|hs49sf:</customfieldvalue>

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