<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:40:48 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-16357] Chunk migration pre-commit write concern should be configurable</title>
                <link>https://jira.mongodb.org/browse/SERVER-16357</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, the w:majority that occurs before a chunk migration enters the critical section is not configurable.  However, there are some circumstances where w:majority is not the most appropriate write concern (specifically, with arbiters, hidden members, delayed members, and/or priority: 0 members) &amp;#8212; even with the changes to w:majority in 2.8.  In these cases an experienced and knowledgable admin may want to use an alternate pre-commit write concern &amp;#8212; whether weaker (understanding the potentially serious consequences and risks), stronger (eg. to reduce problems with secondary reads after migrations), or using tagged write concern.&lt;/p&gt;

&lt;p&gt;Since the exact write concern used by secondaryThrottle can be configured, it would be similarly useful to configure the migration pre-commit write concern.  However, given the serious risks associated with weakened pre-commit write concern, there should be correspondingly serious startup warnings (or similar) in this case.&lt;/p&gt;

&lt;p&gt;For example, consider a 5 member set with 2 data bearers and an arbiter locally, and 2 remote data bearing members (connected by a slower WAN link).  The remote nodes are to quickly service queries from clients in the remote DC (which are tolerant of inconsistent reads), thus they are hidden and priority: 0, ie. they are conceptually &quot;peripheral&quot; to the &quot;core&quot; of the replset (the local DC).  The problem is that in this set w:majority (w:3) cannot be serviced by the &quot;core&quot; of the replset alone.  This means that migrations are affected by the health of the &quot;peripheral&quot; nodes, and may fail if those nodes are down.  The intention is that it should be possible to add &quot;peripheral&quot; nodes to a replset in a way that does not affect its operation.  A hard-coded w:majority for migration pre-commit prevents this.  The user might want w:2 to be used at migration pre-commit, the same as it would be in the absence of the two peripheral nodes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-14403&quot; title=&quot;Change w:majority write concern to indicate a majority of voting nodes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-14403&quot;&gt;&lt;del&gt;SERVER-14403&lt;/del&gt;&lt;/a&gt; helps, but does not solve the whole problem.  If the 2 remote members were made non-voting, then w:majority would be w:2, which could be satisfied by the local data bearers.  However, such a set would more fragile than the set where all members are voting.  The user may legitimately want the replset to continue to have a primary after the loss of a local data bearer and arbiter, even though migrations could never safely complete in such circumstances.  If the two remote nodes are non-voting, then the set will not have a primary in this case.&lt;/p&gt;

&lt;p&gt;Another example is that a user affected by secondary reads after migrations might prefer to specify a pre-commit write concern equal to the total number of data bearers.  Although this will not remove all of the hazards of sharded secondary reads, it would at least remove those associated with repllag.&lt;/p&gt;

&lt;p&gt;It can also be the case that the default write concern configured for a replica set is actually &lt;em&gt;stronger&lt;/em&gt; than w:majority, which means that migrations would actually have weaker replication guarantees than normal writes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="171827">SERVER-16357</key>
            <summary>Chunk migration pre-commit write concern should be configurable</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="9">Done</resolution>
                                        <assignee username="schwerin@mongodb.com">Andy Schwerin</assignee>
                                    <reporter username="kevin.pulo@mongodb.com">Kevin Pulo</reporter>
                        <labels>
                    </labels>
                <created>Mon, 1 Dec 2014 05:05:41 +0000</created>
                <updated>Mon, 15 Feb 2016 15:49:28 +0000</updated>
                            <resolved>Mon, 1 Dec 2014 18:13:55 +0000</resolved>
                                                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>12</watches>
                                                                                                                <comments>
                            <comment id="775276" author="schwerin" created="Mon, 1 Dec 2014 18:13:55 +0000"  >&lt;p&gt;There is a very interesting question, hinted at here, about how MongoDB could better support a hierarchy of failure types (node vs data center, e.g.).  However, the specific feature requested here would lead to data loss if the user ever set the write concern to something that was not a superset of w: majority.  As such, I&apos;m resolving this issue &quot;Works as Designed.&quot;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="94848">SERVER-11268</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="162883">SERVER-15591</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="137856">SERVER-14041</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="144839">SERVER-14403</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="174499">SERVER-16548</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>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 1 Dec 2014 17:43:04 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        9 years, 11 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_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>ricardo.lorenzo</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            9 years, 11 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>kevin.pulo@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrlhpz:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>150479</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_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|hrll2n:</customfieldvalue>

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