<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:02:53 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-23271] Add metrics to track index key additions and deletions for all CRUD ops/commands</title>
                <link>https://jira.mongodb.org/browse/SERVER-23271</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Adding, updating and removing index entries can be an expensive part of any write operation, especially when a large # of index entries are involved. We should track this cost (at a minimum, a count of the # of changes performed) and record in both the profiler and in slow operation diagnostic logging. &lt;/p&gt;</description>
                <environment></environment>
        <key id="274060">SERVER-23271</key>
            <summary>Add metrics to track index key additions and deletions for all CRUD ops/commands</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="james.wahlin@mongodb.com">James Wahlin</assignee>
                                    <reporter username="james.wahlin@mongodb.com">James Wahlin</reporter>
                        <labels>
                    </labels>
                <created>Mon, 21 Mar 2016 19:19:17 +0000</created>
                <updated>Tue, 14 Mar 2017 18:11:43 +0000</updated>
                            <resolved>Mon, 25 Apr 2016 15:00:23 +0000</resolved>
                                    <version>3.3.3</version>
                                    <fixVersion>3.3.5</fixVersion>
                                    <component>Diagnostics</component>
                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="1245406" author="xgen-internal-githook" created="Mon, 25 Apr 2016 14:58:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jameswahlin&apos;, u&apos;name&apos;: u&apos;James Wahlin&apos;, u&apos;email&apos;: u&apos;james.wahlin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23271&quot; title=&quot;Add metrics to track index key additions and deletions for all CRUD ops/commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23271&quot;&gt;&lt;del&gt;SERVER-23271&lt;/del&gt;&lt;/a&gt; Add MMAPv1 profiler test for &apos;nmoved&apos;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/506876412086623fdcc51dbec5dfcbe49c5361d7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/506876412086623fdcc51dbec5dfcbe49c5361d7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1243961" author="xgen-internal-githook" created="Fri, 22 Apr 2016 16:10:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jameswahlin&apos;, u&apos;name&apos;: u&apos;James Wahlin&apos;, u&apos;email&apos;: u&apos;james.wahlin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23271&quot; title=&quot;Add metrics to track index key additions and deletions for all CRUD ops/commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23271&quot;&gt;&lt;del&gt;SERVER-23271&lt;/del&gt;&lt;/a&gt; Tests for keysInserted &amp;amp; keysDeleted&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/fe84406d22bec76ea93220272f1381220adea240&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/fe84406d22bec76ea93220272f1381220adea240&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1243073" author="xgen-internal-githook" created="Thu, 21 Apr 2016 20:54:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jameswahlin&apos;, u&apos;name&apos;: u&apos;James Wahlin&apos;, u&apos;email&apos;: u&apos;james.wahlin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23271&quot; title=&quot;Add metrics to track index key additions and deletions for all CRUD ops/commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23271&quot;&gt;&lt;del&gt;SERVER-23271&lt;/del&gt;&lt;/a&gt; Add keysInserted and keysDeleted metrics for CRUD ops&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/dc3d30af10b6859124d1ce8790ad8e097d1f06c7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/dc3d30af10b6859124d1ce8790ad8e097d1f06c7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1242850" author="xgen-internal-githook" created="Thu, 21 Apr 2016 18:32:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23271&quot; title=&quot;Add metrics to track index key additions and deletions for all CRUD ops/commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23271&quot;&gt;&lt;del&gt;SERVER-23271&lt;/del&gt;&lt;/a&gt; Add keysInserted and keysDeleted metrics for CRUD ops&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 6bbaee174447ee1c9177c72bdd07f050ab07e901.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0bd67d53681e4826a44f2b45b136f50cd36de44b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0bd67d53681e4826a44f2b45b136f50cd36de44b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1242849" author="xgen-internal-githook" created="Thu, 21 Apr 2016 18:32:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23271&quot; title=&quot;Add metrics to track index key additions and deletions for all CRUD ops/commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23271&quot;&gt;&lt;del&gt;SERVER-23271&lt;/del&gt;&lt;/a&gt; Fix dbtest for RecordStore::updateRecord contract change&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 2edcf2976ae45145af0c655d3e4a2dd9560b5b2f.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/42415534834c82518dfdb4c75c3b22b75edb5eff&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/42415534834c82518dfdb4c75c3b22b75edb5eff&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1242613" author="xgen-internal-githook" created="Thu, 21 Apr 2016 15:46:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jameswahlin&apos;, u&apos;name&apos;: u&apos;James Wahlin&apos;, u&apos;email&apos;: u&apos;james.wahlin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23271&quot; title=&quot;Add metrics to track index key additions and deletions for all CRUD ops/commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23271&quot;&gt;&lt;del&gt;SERVER-23271&lt;/del&gt;&lt;/a&gt; Fix dbtest for RecordStore::updateRecord contract change&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2edcf2976ae45145af0c655d3e4a2dd9560b5b2f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2edcf2976ae45145af0c655d3e4a2dd9560b5b2f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1242612" author="xgen-internal-githook" created="Thu, 21 Apr 2016 15:46:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jameswahlin&apos;, u&apos;name&apos;: u&apos;James Wahlin&apos;, u&apos;email&apos;: u&apos;james.wahlin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23271&quot; title=&quot;Add metrics to track index key additions and deletions for all CRUD ops/commands&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23271&quot;&gt;&lt;del&gt;SERVER-23271&lt;/del&gt;&lt;/a&gt; Add keysInserted and keysDeleted metrics for CRUD ops&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6bbaee174447ee1c9177c72bdd07f050ab07e901&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6bbaee174447ee1c9177c72bdd07f050ab07e901&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1225300" author="james.wahlin@10gen.com" created="Mon, 4 Apr 2016 20:51:07 +0000"  >&lt;p&gt;After further discussion we are now leaning towards adding both a &apos;keysInserted&apos; and a &apos;keysDeleted&apos; metric, rather than a single &apos;keysAffected&apos; metric. The motivation for this is added clarity on work done.&lt;/p&gt;

&lt;p&gt;When an indexed value is changed in a document, this change is executed as a key removal + a key addition. With a single &apos;keysAffected&apos; metric, an updated key value could be represented in one of 2 ways:&lt;br/&gt;
a) Both the insert and delete components on update have a value of 1 in the metric. So while an insert would increase &apos;keysAffected&apos; by one, an update would increase by 2. This would keep this metric in-line with actual cost, but could be confusing to end users who would logically see an updated field as affecting one key.&lt;br/&gt;
b) An update has a value of 1 in the &apos;keysAffected&apos; metric, on par with insert and delete operations. This would make any value easier to rationalize, but would not account for an updated value being equivalent (in work done) to a delete + insert.&lt;/p&gt;

&lt;p&gt;Reporting &apos;keysInserted&apos; and &apos;keysDeleted&apos; helps clarify the actual work being performed and is easier to understand. We will have to educate users that an updated indexed value means 1 delete + 1 insert, but this seems easier to rationalize than the &apos;keysAffected&apos; alternative.&lt;/p&gt;

&lt;p&gt;Note: The above is meant to reflect insert and delete operations on non-multikey indexes. On update of an indexed array field, the values of keysInserted and keysDeleted could be larger than 1, reflecting the true number of index keys inserted and removed to satisfy the operation.&lt;/p&gt;</comment>
                            <comment id="1215711" author="james.wahlin@10gen.com" created="Fri, 25 Mar 2016 19:06:18 +0000"  >&lt;p&gt;Our current plan is to add a &quot;keysAffected&quot; metric, that would be a sum of all index keys inserted, removed or updated during a given write operation.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="274061">SERVER-23272</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="271774">SERVER-23081</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="282168">DOCS-7737</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="281560">SERVER-23861</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>9.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="10012"><![CDATA[Major Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 21 Apr 2016 15:46:21 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 years, 42 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-278</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>emily.hall</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            7 years, 42 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrkcxb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrd66f:</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="973">Query 13 (04/22/16)</customfieldvalue>
    <customfieldvalue id="1040">Query 14 (05/13/16)</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|hsf4ev:</customfieldvalue>

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