<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:05:35 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-24173] dbhash should check and/or return indexes in its reply</title>
                <link>https://jira.mongodb.org/browse/SERVER-24173</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;tt&gt;dbHash&lt;/tt&gt; should, in addition to checking collection data, also check the indexes. Even if the indexes aren&apos;t taken into consideration when performing the hash, we should still return the indexes in the &lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/dbHash/#return-hash-values-for-all-collections-in-a-database&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;return document&lt;/a&gt; so that the user can verify that each member of a replica set has the same indexes.&lt;/p&gt;

&lt;p&gt;(Of course, it&apos;s possible for replica set members to have different indexes; e.g. when performing a rolling index upgrade. But in the &quot;normal&quot; use case, where the user doesn&apos;t circumvent the replication system, it&apos;s expected that all the indexes will be the same.)&lt;/p&gt;

&lt;h5&gt;&lt;a name=&quot;OriginalDescription&quot;&gt;&lt;/a&gt;Original Description&lt;/h5&gt;
&lt;p&gt;&lt;tt&gt;dbhash&lt;/tt&gt; provides a way to verify that replicas have the same data.&lt;br/&gt;
How about having a similar check for the indexes.&lt;br/&gt;
Walk an index, calculating a hash value on the index keys.&lt;/p&gt;

&lt;p&gt;An overall value for all indexes of a given collection would be a quick check to see that all indexes are identically built, and that the collection does not have a different number of indexes for a given collection.&lt;/p&gt;

&lt;p&gt;In rare situations, some users want a different number of indexes, so for that purpose and for the purpose of identifying which index differ we may need to show:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;hash per index&lt;/li&gt;
	&lt;li&gt;hash for all indexes on a collection&lt;/li&gt;
	&lt;li&gt;hash for all indexes on a database&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="287063">SERVER-24173</key>
            <summary>dbhash should check and/or return indexes in its reply</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="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="daniel.coupal@mongodb.com">Daniel Coupal</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 May 2016 21:54:07 +0000</created>
                <updated>Tue, 6 Dec 2022 04:25:38 +0000</updated>
                            <resolved>Mon, 10 Jun 2019 20:38:06 +0000</resolved>
                                                                    <component>Diagnostics</component>
                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="2285760" author="geert.bosch" created="Fri, 14 Jun 2019 19:38:17 +0000"  >&lt;p&gt;This last comment turns out to be incorrect, my apologies. I&apos;m hesitant to add (much) more information to the output of this command, as, unlike &lt;tt&gt;listIndexes&lt;/tt&gt; and &lt;tt&gt;listCollections&lt;/tt&gt;, it does not use a cursor for its output. While this may already be an issue when not specifying the set of collections to obtain the hash from, it would become much more of an issue if we add index information. So, it is probably best to use the regular &lt;tt&gt;listIndexes&lt;/tt&gt; or &lt;tt&gt;listCollections&lt;/tt&gt; in addition to the &lt;tt&gt;dbHash&lt;/tt&gt; command.&lt;/p&gt;

&lt;p&gt;As &lt;tt&gt;dbHash&lt;/tt&gt; is primarily intended for testing purposes and not for use on running production systems, we don&apos;t intend to implement the requested enhancements.&lt;/p&gt;</comment>
                            <comment id="2278482" author="milkie" created="Mon, 10 Jun 2019 20:38:08 +0000"  >&lt;p&gt;The dbhash calculation includes the index specifications for each collection.  Therefore, if nodes have different indexes, this would be reflected in differing dbhash values.&lt;br/&gt;
Consistency of index data can be verified using the validate command.&lt;/p&gt;</comment>
                            <comment id="1272514" author="kyle.suarez" created="Mon, 23 May 2016 20:15:33 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.coupal&quot; class=&quot;user-hover&quot; rel=&quot;daniel.coupal&quot;&gt;daniel.coupal&lt;/a&gt;, I believe that &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=robert.guo&quot; class=&quot;user-hover&quot; rel=&quot;robert.guo&quot;&gt;robert.guo&lt;/a&gt;&apos;s work on the &lt;tt&gt;validate&lt;/tt&gt; command mostly accomplishes what you were initially suggesting, especially in terms of identifying whether or not you&apos;re affected by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22970&quot; title=&quot;Background index build produces an index with mismatched index keys and documents&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22970&quot;&gt;&lt;del&gt;SERVER-22970&lt;/del&gt;&lt;/a&gt;. As such, the Integration team is going to close this ticket as resolved.&lt;/p&gt;

&lt;p&gt;However, if you still think we should have a command that makes it easier to run &lt;tt&gt;dbhash&lt;/tt&gt;, then I think that work is better tracked in your other request, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-24205&quot; title=&quot;Replicated dbhash command&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-24205&quot;&gt;SERVER-24205&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="287679">SERVER-24205</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 16 May 2016 22:26:21 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 34 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_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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years, 34 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-execution</customfieldvalue>
            <customfieldvalue>daniel.coupal@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>geert.bosch@mongodb.com</customfieldvalue>
            <customfieldvalue>kyle.suarez@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrk7wf:</customfieldvalue>

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

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