<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:08:39 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-45389] Add metrics tracking how often shards have inconsistent indexes</title>
                <link>https://jira.mongodb.org/browse/SERVER-45389</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Metrics should be added that can be used to determine when shards do not all have the same indexes for a sharded collection.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1078918">SERVER-45389</key>
            <summary>Add metrics tracking how often shards have inconsistent indexes</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="cheahuychou.mao@mongodb.com">Cheahuychou Mao</assignee>
                                    <reporter username="jack.mulrow@mongodb.com">Jack Mulrow</reporter>
                        <labels>
                    </labels>
                <created>Tue, 7 Jan 2020 15:43:49 +0000</created>
                <updated>Sun, 29 Oct 2023 22:13:38 +0000</updated>
                            <resolved>Thu, 6 Feb 2020 19:59:03 +0000</resolved>
                                                    <fixVersion>4.2.6</fixVersion>
                    <fixVersion>4.3.4</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3003538" author="xgen-internal-githook" created="Fri, 27 Mar 2020 00:47:03 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Cheahuychou Mao&apos;, &apos;username&apos;: &apos;cheahuychou&apos;, &apos;email&apos;: &apos;cheahuychou.mao@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45389&quot; title=&quot;Add metrics tracking how often shards have inconsistent indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45389&quot;&gt;&lt;del&gt;SERVER-45389&lt;/del&gt;&lt;/a&gt; Add metrics tracking how often shards have inconsistent indexes&lt;/p&gt;

&lt;p&gt;(cherry picked from commit ea696eb7a27f18c21223a3ff94d9124f06698af5)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46084&quot; title=&quot;Don&amp;#39;t use $setUnion in aggregation for finding inconsistent sharded indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46084&quot;&gt;&lt;del&gt;SERVER-46084&lt;/del&gt;&lt;/a&gt; Don&apos;t use setUnion in aggregation for finding inconsistent sharded indexes&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 2eaf0ba58cca9e96276e8a07a3d46f0a7b83289d)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/decfd07f05e7d9a65cfd07e42c07456f5a72b6f4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/decfd07f05e7d9a65cfd07e42c07456f5a72b6f4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2814833" author="xgen-internal-githook" created="Thu, 6 Feb 2020 19:47:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Cheahuychou Mao&apos;, &apos;username&apos;: &apos;cheahuychou&apos;, &apos;email&apos;: &apos;cheahuychou.mao@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45389&quot; title=&quot;Add metrics tracking how often shards have inconsistent indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45389&quot;&gt;&lt;del&gt;SERVER-45389&lt;/del&gt;&lt;/a&gt; Add metrics tracking how often shards have inconsistent indexes&lt;/p&gt;

&lt;p&gt; create mode 100644 jstests/noPassthrough/sharded_index_consistency_metrics.js&lt;br/&gt;
 create mode 100644 src/mongo/db/commands/sharded_index_consistency_server_status.cpp&lt;br/&gt;
 create mode 100644 src/mongo/db/s/periodic_sharded_index_consistency_checker.cpp&lt;br/&gt;
 create mode 100644 src/mongo/db/s/periodic_sharded_index_consistency_checker.h&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ea696eb7a27f18c21223a3ff94d9124f06698af5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ea696eb7a27f18c21223a3ff94d9124f06698af5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2715331" author="mihai.andrei" created="Thu, 9 Jan 2020 21:33:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas&quot;&gt;bruce.lucas&lt;/a&gt; I think that would work; since we only really care about the list&apos;s length, then it doesn&apos;t make sense to store the list as a whole given the limitations that you&apos;ve pointed out.&lt;/p&gt;</comment>
                            <comment id="2714771" author="bruce.lucas@10gen.com" created="Thu, 9 Jan 2020 18:16:43 +0000"  >&lt;p&gt;A list of strings won&apos;t be captured by ftdc as it only captures numeric data. You could make it numeric by having a list of subdocuments of the form {collection:1} where collection is the collection name. However normally we don&apos;t include per-collection information in serverStatus or ftdc because the number of collections is potentially very large. Also I&apos;m not sure how often this list would change - if it changes frequently that&apos;s a problem because schema changes in ftdc reduce compression efficiency.&lt;/p&gt;

&lt;p&gt;But if all you&apos;re going to do is observe the length of this list would it suffice to simply include the length of the list, i.e. count of inconsistent indexes or of collections with inconsistent indexes?&lt;/p&gt;</comment>
                            <comment id="2712784" author="mihai.andrei" created="Wed, 8 Jan 2020 20:23:46 +0000"  >&lt;p&gt;I think the way to do this is to add a list of sharded collections with inconsistent indexes to serverStatus (either as part of the shardedStatistics section or as its own section). Since this information would be captured as part of FTDC, you can count how often this list of collections is non-empty and divide it by how many serverStatus documents were collected to get an idea of how often inconsistent indexes are present on a sharded cluster. If this addition to serverStatus is then backported to 4.2, you could then compare how much of an impact this project has had on reducing the frequency of inconsistent indexes on a sharded cluster.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alycabral&quot; class=&quot;user-hover&quot; rel=&quot;alycabral&quot;&gt;alycabral&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=garaudy.etienne&quot; class=&quot;user-hover&quot; rel=&quot;garaudy.etienne&quot;&gt;garaudy.etienne&lt;/a&gt;, does this seem like a reasonable approach?&lt;/p&gt;
</comment>
                            <comment id="2709636" author="jack.mulrow" created="Tue, 7 Jan 2020 15:45:22 +0000"  >&lt;p&gt;A possible approach would be a periodic job on the config server that uses the logic from &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44916&quot; title=&quot;Test and document a pipeline to find inconsistent indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44916&quot;&gt;&lt;del&gt;SERVER-44916&lt;/del&gt;&lt;/a&gt; (i.e. runs an aggregation with &lt;em&gt;$listIndexes&lt;/em&gt;&#160;for each sharded collection) to track all sharded collections with currently inconsistent indexes in an array exposed in a serverStatus object. Index creation is not atomic across shards so there might be false positives, but when the job runs later these false positives should be removed.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="1136340">DOCS-13398</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>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></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>Wed, 8 Jan 2020 20:23:46 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 45 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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>This patch adds a config-server serverStatus metric &#8220;shardedIndexConsistency&#8221; with the&lt;br/&gt;
subfield &amp;quot;numShardedCollectionsWithInconsistentIndexes&amp;quot; (NumberLong).</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16942"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1361</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>
                            3 years, 45 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>bruce.lucas@mongodb.com</customfieldvalue>
            <customfieldvalue>cheahuychou.mao@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>jack.mulrow@mongodb.com</customfieldvalue>
            <customfieldvalue>mihai.andrei@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hwfblj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hw3gtr:</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="3475">Sharding 2020-01-13</customfieldvalue>
    <customfieldvalue id="3570">Sharding 2020-01-27</customfieldvalue>
    <customfieldvalue id="3571">Sharding 2020-02-10</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_17051" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Teams Impacted</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16944"><![CDATA[Docs]]></customfieldvalue>
    <customfieldvalue key="16945"><![CDATA[Drivers]]></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|hwexuv:</customfieldvalue>

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